Luigi's Mansion:Docs/Model Formats/MP (File Format)

===Summary===
MP files can be fully edited. It can be extracted and (custom) imported.
In Luigi Mansion , MP files are the collision maps, to make sure Luigi doesn't accidentally go through walls and so on.
===Format Information===
The MP are the collision map format used in Luigi's Mansion.
The following wikitable have been interpreted from the Luigi's Mansion Collision MP list written by ItsEasyActually. It may not be accurate to the list exactly.
===Header===
Offset 	Integer	Description
0x00 	float3 	Position
0x12 	float3 	Rotation
0x24 	float3 	Scale
colspan=4	 	
===Data Header===
Offset 	Integer	Description
0x00 	ui32 	Vertex Buffer Offset
0x04 	ui32 	Unknown1 (Directly after Vert Buffer)
0x08 	ui32 	Unknown2 (After Unknown1)
0x0C 	ui32 	Face Data Offset
0x10 	ui32 	Unknown3 (Directly after Face Data)
0x14 	ui32 	Unknown4 (Same as Unknown3)
0x18 	ui32 	Unknown4 Unknown5 (After Unknown3/Unknown4)
colspan=4	 	
===Vertex Buffer===
(Undefined length)
Offset	Integer	Description
0x00 	float3 	X,Y,Z Position
===Unknown1===
It's structured. The data aligns to 12 byte rows.
===Unknown2===
The data aligns directly to 24 byte structures.
Offset	Integer
0x00 	ui16
0x02 	ui16
0x04 	ui16
0x06 	ui16
0x08 	ui16
0x0A 	ui16
0x0C 	ui16
0x0E 	ui16
0x10 	byte4
0x14 	byte4
===Unknown3===
Structures seem to be mostly null, but when data is seen, it's usually in ui32 structures.
===Face Data===
Structures begin with 0xFFFF, which signifies the beginning of a set of face data. The face data itself is either in tri-fan or tri-strips, and another 0xFFFF signifies when it ends and a new set begins. When you reach a 0xFFFFFFFF, the data ends.
Offset	Integer
0x00 	ui16 v1
0x02 	ui16 v2
0x04 	ui16 v3
0x06 	ui16 normal
0x08 	ui16 n1
0x0A 	ui16 n2
0x0C 	ui16 n3
0x0E 	ui16 unk4
0x12 	float unk5
0x14 	u16 unk6
0x16 	u16 unk7
===Unknown5===
Offset	Integer	
0x00 	u16 	xFFFF
0x02 	ui8 	x0A
0x00 	ui8 	x40
The beginning is full of 0xFFFF0A and 0x40 takes up the end of the structure.
===Misc===
Offset	Integer
0x24 	vertex offset
0x26 	unk1
0x28 	face offset
0x30 	unk2
vert count = unk1 - vertoffset/12
face count = unk2 - faceoffset/24
===Luigi's Mansion MP Doc===
Luigi's Mansion Collision Format (.mp files) Written by ItsEasyActually
--Header--
0x00	float3 	Position
0x12	float3	Rotation
0x24	float3	Scale
--Data Header--
0x00	ui32	Vertex Buffer Offset
0x04	ui32	Unknown1 (Directly after Vert Buffer)
0x08	ui32	Unknown2 (After Unknown1)
0x0C	ui32	Face Data Offset
0x10	ui32	Unknown3 (Directly after Face Data)
0x14	ui32	Unknown4 (Same as Unknown3) *From my research*
0x18	ui32	Unknown5 (After Unknown3/Unknown4)
--Vertex Buffer-- (Undefined length)
0x00	float3	X,Y,Z 
Vert Total = (Unknown1-Vertex Buffer Offset)/12
--Unknown1--
It's structured, but I have no idea what. The data aligns to 12 byte rows.
--Unknown2--
0x00	ui16	
0x02	ui16	
0x04	ui16	
0x06	ui16	
0x08	ui16	
0x0A	ui16	
0x0C	ui16	
0x0E	ui16	
0x10	byte4	
0x14	byte4	
The data aligns directly to 24 byte structures. I have no idea what they do, but the structures resemble what I formatted them as.
--Face Data--
FF FF [Face Data] FF FF [Face Data] FF FF FF FF
Structures begin with 0xFFFF, which signifies the beginning of a set of face data. The face data itself is either in tri-fan or tri-strips, and another 0xFFFF signifies when it ends and a new set begins. When you reach a 0xFFFFFFFF, the data ends.
--Unknown3--
Structures seem to be mostly null, but when data is seen, it's usually in ui32 structures (I think)
--Unknown5--
0x00	ui16	xFFFF
0x02	ui8	x0A
0x00	ui8	x40
The beginning is full of 0xFFFF0A and 0x40 takes up the end of the structure. They seem to be related in size somehow, but I'm not entirely sure how.
---Update by SpaceCats and arookas---
0x24 - vertex offset
0x26 - unk1
0x28 - face offset
0x30 - unk2
vert count = unk1 - vertoffset/12
face count = unk2 - faceoffset/24
--Face Data--
0x00 - u16 v1
0x02 - u16 v2
0x04 - u16 v3
0x06 - u16 normal
0x08 - u16 n1
0x0A - u16 n2
0x0C - u16 n3
0x0E - u16 unk4
0x12 - float unk5
0x14 - u16 unk6
0x16 - u16 unk7
Category:File Format/LM