.l3d files can only have 256 x 256 textures (16 bits per pixel, BGRA). The game is sending them without any changes, same quality like they are.
.raw textures are separated into two files each: one for RGB data (24 bits per pixel), another for Alpha data (8 bits per pixel). Technically it is a good quality and it allows to use square textures of any resolution. But the game opens both, gathers information and puts it together into one 256 x 256 texture (16 bits per pixel, BGRA).
If you would make texture mods, you would be limited by the low resolution and low quality. And when sending the .l3d files you would need to send them together with other data (for example vertex data, bones, other textures). And when sending .raw files they would weight twice as much as used. And the user of the mod would need to replace the game files. Which is very, very, very bad. I mean, very. Bad.
This project allows to use custom textures of practically any resolution and 32 bits per pixel. And allows doing it without replacing the game files. Allows even the replacement of textures in .l3d without storing any other data in the mod itself.
It also allows to change the color of vertices which can't be achieved by the editing of textures and is used, for example, in the coloring of fire and things which have the color of a player (temple beams, player symbol, influence rings, gestures and so on).
This project also allows to make simple modifications with the help of simple commands, so there would be no need in storing of big texture files.
Was tested in Windows XP, Windows 8.1, Windows 98.
In Windows 98 needed to rename ddraw.dll into fdraw.dll and edit the .exe file of the game with the help of the XVI32. Still worked not as intended. Everything was red.
Supported in CI.