Ah yes that's a good idea, thanks. I'll check the face textures.
As for the plt header. I kinda figured it out with a hex editor and a lot of files. It's a 24 byte header.
// First 8 bytes are always:
50 4C 54 20 56 31 20 20
P L T V 1
// Next 8 bytes seem to be kinda random, at least the first byte is. The other 7 are always 00.
// Can't make sense of it and doesn't seem to matter. In custom content it's always:
0A 00 00 00 00 00 00 00
// In standard bioware plt there is some variation in the first byte, but it never goes higher than 0A, which would
// be 10 = the number of layers in a plt. I suspect it has something to do with the number of layers,
// but it's not used I think.
// Next 4 bytes is width (little endian)
80 00 00 00
// Next 4 bytes is height
40 00 00 00
// The rest are (values, layer) tuples
AA 00 BB 01 ...
// Which would be:
// (AA = value, 00 = layer), (BB = value, 01 = layer)
// values are 0-255 grayscale
// layer id are 0-9 in the following order:
// ['Skin', 'Hair', 'Metal1', 'Metal2', 'Cloth1', 'Cloth2', 'Leather1', 'Leather2', 'Tattoo1', 'Tattoo2']
// I haven't actually tested what happens if I try to use layer 10
While we're at it: I tried to figure out the bioware dds header, but had limited luck. As far as I can tell it has a 16 byte header: Width, Height, "Type" (Alpha or Non-alpha/Compression type), Data Size and some random 4 bytes. However it's only random for images with an alpha channel. For images without alpha it's always 00 00 80 3F. I wonder what it does. It's not needed for importing, but maybe for exporting ?
I thought of writing a gimp plugin, which can load and save bioware dds files in addition to standard ones. Could you point me to some information ?