If you just load up your tank.x model with LoadObject(), then loop through the textures that were found in it (GetObjectNumTextures() &GetObjectTextureName()) and load the image names and apply the images to the meshes with setobjectmeshImage() then you get a textured model.
You may need to reorder the textures against the meshes if they weren't saved in order from whatever 3d app was used to create the file but that is fairly easy, and you will have to use the texture names as they are defined in the model file (the panel name is different). Ive printed out the texture names AppGameKit found in the file
That takes about 4 lines to load the textures and apply them rather them manually try to find names in the model file.
Id still much prefer a fully textured object rather than just matte colours but each to their own.
Why use those 27x24 pixel images?? Since they are just plain uniform colours, a 1x1 pixel file would do the same job and be smaller? I assume some app generated them.
EDIT:
Just to add....this is what i do all in one load function:
-find the texture name for the mesh using the GetObjectTextureName() function.
-Then check for similarly named image files but with additional text like _n - for normal map and _ao for ambient occlusion, _lm for lightmap,_r for roughness, _em for environment map etc...
-I check if they exist in the same directory and if they do, I automatically load them and apply them to the appropriate texture slot.
-If a set of textures is loaded then I apply the correct shader (depending on what images were with the model) or stick with AGK's shader for items with just a diffuse (or diffuse plus normal).
This way you can load complex scenes with multiple textures per mesh and set the appropriate shaders without any complexity or scripting at all. The results are a simple LoadObjectEx() function (as I named it) which does everything for me.