I've already done some little work on my part; Basically: This is the start of the file, each entry is 80 long, so 80 * file count = All index entries I've been able to "unpack" the .mus file, since the files in there are not encoded, but in the .p it seems different. If you go to the file offset you can see that each file has the LZSS magic, but my LZSS decoder doesn't seem to get anything feasible out of it.
idstring "PACK" get FILES long for i = 0 < FILES getdstring NAME 0x40 get SIZE long get SOME_CRC long get OFFSET long get ZSIZE long
savepos TMP goto OFFSET idstring "LZSS" get ZSIZE long savepos OFFSET encryption blowfish KEY # ??? if SIZE > ZSIZE clog NAME OFFSET ZSIZE SIZE else log NAME OFFSET SIZE endif goto TMP next i