I couldn't get objects to load successfully from this version, converting to memblock results in a memblock size of zero, also reports zero meshes for the object and zero polycount drawn to scene...yet the data is there, it loads successfully into blender!
I did manage to catch the other version you uploaded with the "normals added" fix...that turned out to work the same as the original "no normals" version, but the normals came out bad - kind of looked like every other triangle was zeroed out.
Oddly enough, of the 3 versions the first works best for me. Simply importing and exporting each model in blender was enough to generate new face normals(important to ensure double sided option is off - back face cull option also off). I did find some UV issues but they where modeller based, not your code - some originally exceeded float range 0 -1 and that obviously gets carried through. Should be possible to put a check in for when values exceed range and then simply remove the integer part prior to calculating which colour tile to reposition at? In any case your first version cuts a bunch of work out, I am not sure what is going on with the normals in version 2 and as I say version 3 fails for me altogether.
In both version 1 and 2 I noticed that you increased the number of indices data by twice as much. Importing/exporting in blender fixes that back to original values(although blender imports the bad normals from version 2 .obj's and fixing them is a nightmare for some objects in blender - better to go with version 1 which generates nice new ones when imported).
Also notable is that, with for example kenney's pirate ship, there are a bunch of duplicate triangles as well as extra vertices. Importing using blender but ONLY AFTER using your apps 1st version allowed me to quickly remove doubles without issues, readjust uv's so they where all in same tile of atlas(due to model having out of range uv values), then export. Looked exactly in agk as the screen shot from kenney's site and the mesh data showed the indices as minimal and a smaller size of memblock than that of one generated by the original model.
There was mention on previous versions of anything greater than 16 colours would be an issue. I actually tested the first version for 25 colours on an icosphere which came out fine - I did however only test using your app with the .obj/.mtl in a folder on their own but with shared atlas option checked.
I did find issues with not creating enough materials in the icosphere to satisfy a fully filled square atlas. From a
creation point of view we can simply create enough materials to satisfy that rule, put them on an object in the same scene as the object we want to work on and that first "pallette" object can later get removed in agk, am thinking 2 meshes as root and child then split it up in agk deleting the object produced from the child "limb"
.
I suppose overall it might be best to make your first version available once more?
Win 7 Pro 64 bit SP1, AMD A4-5300 APU 3.4GHz, 8GB DDR3, NVidia GeForce GTX 750 1GB GDDR5, ASUS A55BM-E