It's not actually the DEFA marker that's troubling me. And in the example I gave, there are four texture sets with NUMtexes = 8, 1, 12, and 4 respectively. One thing that I assumed is that each of the four texture sets has the same structure, but as you can see, the fourth texture set has longer TEXTYPENAME structures with little endian floats behind them. I'm guessing that each TEXTYPENAME can actually hold either a texture file name or a color (three floats for RGB). But then my code must be able to recognize this. Here's another example with three floats in the second texture set (from the model unit_lostsouls_demon):