.xx subfiles include everything needed for the definition of 3d characters, items and maps. The structure consists of the skeleton, a list of materials, another list for textures. Meshes are embedded into the skeleton.
Textures have a name, resolution and some other metadata. Then follows the image's raw data in one of the following formats: BMP, TGA, JPG, EMA. The content can differ from the extension given in the name.
A material has the following attributes: diffuse, ambient, specular, emissive and specular power. These attributes change the look of textures. Upto four texture names can be defined in a material.
The skeleton is based on frames which are arranged in a hierarchy. The tree like structure is achieved by a list of child frames in each frame. A frame further consists of a transformation matrix which allows the animation to use it as a bone. Optionally one mesh can be included in a frame.
A mesh is a container for submeshes. It can include a reduced list of vertices which includes no duplicates. Skinned meshes have a list of bones.
The most important members of a submesh are a list of vertices, another for the faces and a material name.
A vertex defines a 3d point, a normal, a uv coordinate pair and an array of upto four relations to bones. A face consists of three indices into the vertex list.
Each of the structures: Texture, Material, Frame, Submesh and Vertex can have additional members called unknowns. Those values can be specific for one game. E.i. Submeshes can be made invisible or transparent with certain values.