ここ数週間、ず〜っと困ってたOpenGLの処理がやっと解決してホッとしました。
今回、実験していた機能を利用すると特に「動物さん」や「声で応援」などで面白い効果が出せると思います。
データも間違いがないし、何が間違っているのかわからなかったのですが本当にちょっとしたことで、これぐらい大丈夫だろう!と適当にしていたのが原因でした(笑)

iPhoneのOpenGL ESではGL_UNSIGNED_INTがないため、GL_UNSIGNED_SHORTに置き換えていましたが、それならglDrawElementsに設定する値もGLushortにしなければならないのに、GLuintでいいやと手を抜いたのが原因。
そりゃね、型が違うとうまくいかないよね。その辺、適当に変換されてるんじゃない?って思っていたのが間違いの元でした。
頂点データとインデックスとUVデータをいくら見比べても間違いがなくて。
ActionScriptにデータを持っていって動作させると問題ないし、データを展開してglDrawArraysで実行するとちゃんと表示されるので、インデックスがおかしいのは簡単に見抜けるはずだったんだけど1週間かかりました。

いや〜やっぱり手を抜くとダメですね。いい勉強になりました。