Most of the games data is in the PAK files.

Format of PAK files:
Header:
P4CK (50 34 43 4B in Hexadecimal)
4ByteOffsetToFileIndex
4ByteOffsetSizeofFileIndex

FileIndex Format:
{48ByteFileName(limited to 48 bytes maximum, otherwise the unused bytes after the name are padded to be zero's), 4ByteFileOffsetStart, 4ByteSizeofFile, 4ByteUnknown}



List of File extensions in PAK files:
.dat
.ico
.qpm
.raw
.vag

Format of .raw files found in OB.PAK and BG.PAK:
Header:
4ByteUnknown(sometimes 10 00 00 00)
4ByteTerminatesSection#1
4ByteTerminatesSection#2
4ByteUnknown

Format of Section#1:
{4ByteUnknown#1,4ByteUnknown#2(appears to be only 01 00 00 00 or 00 00 00 00, 4ByteUnknown#3(appears to be only 01 00 00 00 or 00 00 00 00, 4ByteUnknown#4}
Section#1 is Terminated when 4ByteUnknown#1= FF FF FF FF

Format of Section#2:
This section consists of 44ByteArrays that each correspond to a SubLevel. They have the following format:
{4ByteOffsetToSubLevelStart, 4ByteOffset:Meta#1, 4ByteOffset:Meta#2, 4ByteOffset:Meta#3, 4ByteOffset:Meta#4, 4ByteFloatingPointCoord#1(X,Y,Z), 4ByteFloatingPointCoord#2(X,Y,Z)}
Section#2 is Terminated when 4ByteOffsetToSubLevelStart= 00 00 00 00

Format of Section#3
This section consists of 4Byte Offsets:
{4ByteOffsets}
Section#3 is Terminated when (not counting the first offset which is always 00 00 00 00) an offset equals 00 00 00 00


Meta#1 Format:
"NumberofIntegers"
{4ByteIntegers}