
https://drive.google.com/file/d/0Bw8OrQ ... sp=sharing
You can see the error in the rainbow arrow or whatever you call it. The issue is, the material double sided, and part of the front is being culled out, so you are only seeing the unlit back side. Every poly has the same face normal.
But I found debugging that the calculated polygon normal is completely different to the actual face normal, which makes no sense. It's not inverted as you might expect, it's actually completely different. I haven't gone through every poly individually but my best guess is this is why the culling is fubar here.

Wonder if switching culling to the shaders would fix this. A bit annoying though, as you can't discard vertices in the vertex shader (obviously), so it would have to be done in the fragment shader which is a bit wasteful but perhaps the only way of doing it.