Format is simple and described in twinsanity editor sources
. Represents a Chunk Package, where chunks contain other chunks.
For psp: uint32 num_files;
For ps2: uint16 num_files; uint16 unknown;
if type is 0x01000100 then its the chunk table which having info about other files in package, in count of num_files:
Main difference between versions - ps2 files packed in PACK containers, with NRV2b
compression. Difficult is that file_size value in chunk tables definite only uncompressed size. PACK containers have only 32 bit value, after "KCAP" magic, which doesnt looks like compressed file size.
Well, it's possible to calculate byte ranges of compressed data by "KCAP" magic's and known offsets, but thats the "real crooked nail".