So I noticed the airelemental.m2 from WotLK (3.3.5a, not classic) is different from the I got from https://wow.tools (the WotLK-version actually has MORE geometry). But the skin for the WotLK-Version could not be loaded, since the parser was reading out-of-bounds because the offset was incorrect at that point. This is fixed by reading boneCountMax together with the header instead of after the content.
So I noticed the airelemental.m2 from WotLK (3.3.5a, not classic) is different from the I got from https://wow.tools (the WotLK-version actually has MORE geometry). But the skin for the WotLK-Version could not be loaded, since the parser was reading out-of-bounds because the offset was incorrect at that point. This is fixed by reading
boneCountMax
together with the header instead of after the content.