This is the specifications for the archive file which is handled by the Game Extractor plugin Archive_XWC_MOS.

Endian Order:Little Endian
Compression:None
Encryption:None


This format is used by the following Games:
The Chronicles of Riddick: Escape From Butcher Bay *.xwc *.xtc


This is the format specification information:
 
16 - Header (MOS DATAFILE2.0 + null)
8 - null
4 - Tail Directory offset
20 - null

//Only XWC's pad to offset 2048

X - Padding to offset 2048 (padded using repeats of 1234567890123456)

// for each file
  4 - Unknown (768)
  4 - Unknown (36864)
  4 - Length (excluding all header data - ie the length of the file data only)
  4 - Unknown (1)
  4 - Unknown
  4 - Unknown (32768)
  4 - null
  X - File Data

****
XWC tail directory data -
48 byte headers
  24 - String value  (VERSION,WAVEDATA,WAVEINFO,WAVEDESC,SFXDESC,LIPSYNC, etc...)
  4 - Next header offset
  4 - null
  4 - Structure offset location in file
  4 - unknown (maybe table data pointer location)
  4 - Number of entries at that location
  4 - null

WAVEINFO structure - (Filenames)
  4 - starting offset in file
  4 - size including header
  4 - length of file name
  x - actual filename (may be padded with spaces)

WAVEDESC structure - (who cares)
  4 - unknown (len again? or samples per sec?)
  1 - either 64, or 128
  1 - either 08 or 88
  2 - sample size (5512, 11025 maybe 22050, 44100)
  4 - unknown (len again? or samples per sec?)

filenames are in the waveinfo structure

all of the files share this type of structure for the header names...

XTC is similar but:

Main header leads to tail directory data -
48 byte headers (gotta scan for name) each name had diff structs

IMAGEDIRECTORY5 structure - (filenames)
4 - FF FF FF FF
4 - null
4 - length of filename
x - actual filename (may be padded with spaces)
4 - unknown
4 - unknown
4 - unknown
4 - unknown (768)
4 - unknown (00 05 00 00)
4 - unknown (10 00 04 00) flags?
4 - unknown (00 04 00 00) flags?
4 - unknown (00 02 00 00) flags?
4 - unknown (00 08 00 00) flags?
4 - null
4 - Offset of data in file
4 - unknown
4 - null
4 - 00 00 00 07 (1792)
2 - null


IMAGEDIRECTORY4 structure - (filenames)
4 - FF FF FF FF
4 - null
4 - length of filename
x - actual filename (may be padded with spaces)
4 - unknown
4 - unknown
4 - unknown (768)
4 - unknown (00 05 00 00)
4 - unknown (10 00 04 00) flags?
4 - unknown (00 04 00 00) flags?
4 - unknown (00 02 00 00) flags?
4 - unknown (00 08 00 00) flags?
4 - null
4 - Offset of data in file
4 - unknown
4 - data offsets (series of these, depends on entries in Tail dir names.
                 (basically keep reading until you hit a 4 byte null)
4 - null
4 - 00 00 00 07 (1792)
4 - null
2 - null


Game Extractor is able to read files of this type, as well as files from thousands of other games. To give it a try, download Game Extractor (Basic Version) for free, and see what it can do.

For further information on this format, refer to the source code on our GitHub repository.