Recovering a Maya 2.0 .mb File Without Maya
The few clues that made it possible to recover polygon meshes from a 2000-era Alias Maya Binary file without installing Maya.
Recovering a Maya 2.0 .mb File Without Maya
I had a 66 MB Maya Binary file last saved in July 2000. I had no version of Maya installed, old or new, and I only wanted the model inside it.
I am writing this down for the next person—or the next AI agent—who searches for the same problem. The full code is less important than a few clues that were hard to find.
The useful clues
An old .mb file is not one opaque blob. It is an IFF-like, big-endian container. This file began with FOR4 ... Maya. Transform nodes appeared in XFRM forms, and polygon data appeared in DMSH forms containing MESH chunks.
Modern standalone parsers could walk the file and recover node names and transforms, but they rejected the Maya 2.0 mesh payload as an unknown layout. The file itself contained the best documentation: one mesh was a simple cube with exactly 8 vertices, 12 edges, and 6 faces. That made the byte pattern understandable.
The legacy payload began with the attribute name o, followed by a 0x00 kind byte. Counts were big-endian integers and positions were big-endian 32-bit floats. Edges used one-based vertex IDs. Faces were stored as loops of signed, one-based edge IDs; a negative value meant traversing that edge in reverse. After that, the remaining UV and normal loops followed the same count-and-index pattern.
In rough form:
attribute + legacy kind
position float count + positions
normal float count + normals
UV set count + UV values
edge index count + vertex pairs + smooth flags
face count + signed edge loops + UV loops + normal loops
Once this was known, the rest was ordinary bookkeeping: check every index, require each edge loop to connect and close, and make sure every MESH payload is consumed exactly to its last byte.
The result
The scene contained 14 mesh chunks. Six were hidden construction-history or duplicate meshes, leaving 8 visible parts. After rebuilding the Maya transform hierarchy and baking it into the vertices, the recovered OBJ contained 875,763 vertices and 821,884 faces.
This was not a visual reconstruction or an AI-generated approximation. It was the original numerical mesh data, decoded and moved back into place.
One safety note: old Maya scenes can contain SCRP script nodes. I treated the file as data and never executed them.
If you find another early Alias Maya .mb file, the practical starting point is: identify the FOR4 structure, locate DMSH/MESH, and look for the simplest known object in the scene. A cube can be a surprisingly good Rosetta Stone.
Useful references: MayaSceneKit for inspecting Maya scenes without a Maya runtime, and Autodesk's old MFnTransform documentation for the exact transform composition order.