We're aiming at this NEW format:
0x0	4	p->header
0x4	4	p->string
0x8	2	perspective *10000 (0x2710)
0xA	1	gender flag	(no point bitflagging these two...)
0xB	1	head flag

Perspective fix is probably easiest if it gets stripped from the obj. instance y offset spot.

+-+-+-+-+
!eliminate need for scale in watch!
0B334F	0005	05C4245088


7F07A250:	AED80	fix for perspective - probably ;*)

3C038008	LUI	V1,8008
8C79A0B4	*LW	T9,A0B4 (V1)	T9=stats
8C6AA0B0	*LW	T2,A0B0 (V1)	T2=playerdata
3C018005	LUI	AT,8005
AD4200D4	SW	V0,00D4 (T2)	save obj. instance pointer!
C44C00B8	*LWC1	F12,00B8 (V0)	F12=y offset, same as perspective!
C426502C	LWC1	F6,502C (AT)	F6=8005502C:	???
00022025	*OR	A0,R0,V0	A0=obj. instance pointer
C4840014	LWC1	F4,0014 (A0)	F4=object scale
46062202	MUL.S	F8,F4,F6
44054000	MFC1	A1,F8
0FC1B39E	JAL	7F06CE78	save converted scale
E72C0064	*SWC1	F12,0064 (T9)	save perspective to statistics

+-+-+-+-+
7F0102D4	44E04	rewrite of rewrite: account for new size
000E7040	*SLL	T6,T6,0x2
	ADDU	V0,V0,T6
8042B19D*	LB	V0,B19D (V0)

+-+

7F010374	44EA4	rewrite of rewrite: account for new size
000E7040	*SLL	T6,T6,0x1
004E1021	ADDU	V0,V0,T6
8342B19C	*LB	V0,B19C (V0)	V0=body

+-+

omit 7F0103D0 entirely; remove only reference.  eliminate SW of return value
7F0BDCF4	0xF2824
00000000
-
-
-
-
-
00000000	<-E620FFF4

+-+

PORTRAIT CALLS AND maximum MP characters

7F011C94:	467C4	make a counter...
24140001	ADDIU	S4,R0,0001

7F011D34:	46864	reduce MP table: iterate through all portrait calls
26310006	*ADDIU	S1,S1,0006	next MP character entry!
82210002	*LB	AT,0002 (S1)
0421FFD9	*BGEZ	AT,7F011CA4
26940001	*ADDIU	S4,S4,0001

046867	000D	06 82 21 00 02 04 21 FF D9 26 94 00 01

7F011D4C:	4687C	check value to maximum
82290003	*LB	T1,0003 (S1)
-
-
15200008	*BNEZ	T1,7F011D7C

7F011D80:	468B0
A6340000	*SH	S4,0000 (S1)
-
-
A6++++++	SH	T3,0000 (S1)
-
-
86++++++	LH	""

7F011DC4:	468F4
86++++++	LH	""

7F011DE4:	46914
86++++++	LH	""



7F011A60:	46B90
85++++++	LH	""

	46C38
85++++++	LH	""

+-+

7F0125A8	470D8	reduce MP table: portrait recall routine
00187840	*SLL	T7,T8,0x1
24060002	*ADDIU	A2,R0,0002
AFA60010	*SW	A2,0010 (SP)
	OR	A0,S5,R0
01F87821 	*ADDU	T7,T7,T8
	OR	A3,R0,R0
000F7840	*SLL	T7,T7,0x1

+-+

7F012AA0	475D8	loads txtID# for MP character select labels
000F7840	*SLL	T7,T7,0x1

0475DB	0001	40

+-+-+-+-+

aLL THESE ARE oNlY TO MINIMIZE TABLE SIZE!


7F000F78:	35AA8	reset all objects at start/end of stage
*LW	V1,000C (V0)
*ADDIU	V0,V0,000C
BNEL	V1,R0,7F000F78
SW	R0,0000 (V1)

+-+

Bond in EYE intro
7F009010:	3DB40
	*LW	A0,0064 (S0)	3C
	JAL	7F0764A4
	*LW	A1,0068 (S0)	40
	JAL	7F0BD188
	*LW	A0,0068 (S0)	40
...
7F009050:	3DB80
	*LW	A0,0618 (S0)	3A8
	JAL	7F0764A4
	*LW	A1,061C (S0)	3AC
	JAL	7F0BD188
	*LW	A0,061C (S0)	3AC
...
7F009090:	3DBC0
	*LW	A2,0064 (S0)	3C
	*LW	A3,0618 (S0)	3A8

+-+

7F01032C	44E5C	MP gender block	rewrite
00027040	*SLL	T6,V0,0x1
01C27021	ADDU	T6,T6,V0
000E7080	SLL	T6,T6,0x2	T6=head * 0xC
3C028004	LUI	V0,8004
004E1021	ADDU	V0,V0,T6
03E00008	JR	RA
9042DE1A	*LBU	V0,DE1A (V0)

+-+

7F018928:	0x4D458
	*SLL	T3,T2,0x2
7F0189AC:	0x4D4DC
	*SLL	T3,T2,0x2

+-+-+-+-+-+-+

LONGEST BIT: creates a character object instance

7F0232E8:	57E18	process body (A0) + head (A1); A2=body obj.header, A3=head obj.header
00047840	*SLL	T7,A0,0x1	A0=body#
	ADDU	T7,T7,A0
	LUI	T8,8004
	ADDIU	T8,T8,DE10
	SLL	T7,T7,0x2
	ADDU	V0,T7,T8	V0=body/head entry in table (A0*0xC)
	LUI	AT,8005
C4261A3C	*LWC1	F6,1A3C (AT)	10000, borrowed from main menu, used in scale division!
C4281D90	*LWC1	F8,1D90 (AT)	F8=final scale for character	0.1
	ADDIU	SP,SP,FFC8
944F0008	*LHU	T7,0008 (V0)	obj. y off.
448F8000	*MTC1	T7,F16
	SW	RA,001C (SP)
	SW	S1,0018 (SP)	
	SW	S0,0014 (SP)	save {8003DE10: body/head table}
	SW	A0,0038 (SP)	save body#
	OR	S0,A2,R0	S0=body obj.header
	OR	S1,A3,R0	S1=head obj.header
	SW	A1,003C (SP)	save head#
468082A0	*CVT.S.W	F10,F16
	SW	R0,002C (SP)
	ADDIU	A0,R0,000C	linked routine now grabs 80079E3C
	SW	V0,0024 (SP)	save table address for body
	JAL	7F0927BC
46065283	*DIV.S	F10,F10,F6
//7F02334C:	57E7C	if it returned true, multiply further by 0.8...
10400003	*BEQ	V0,R0,7F02335C
3C018005	*LUI	AT,8005		{not really required...}
C4321D94	*LWC1	F18,1D94 (AT)	F18=80051D94: another scale mod?	0.8
46124202	*MUL.S	F8,F8,F18
E7A80034	*SWC1	F8,0034 (SP)
E7AA0030	*SWC1	F10,0030 (SP)
//7F023364:	57E94
//7F02337C:	57EAC
	JAL	7F075CF4	prep object for use
	OR	A0,S0,R0	A0=body obj. header
	LW	T1,0024 (SP)	T1=body table address
	LW	V0,003C (SP)	V0=head#
	*LBU	T2,000B (T1)	T2=head flag
	BNEL	T2,R0,7F0233F4	skip if head is merged
	LW	T1,004C (SP)
	BLTZL	V0,7F0233F4	skip if head# is random or invalid (negative)
	LW	T1,004C (SP)
	LW	T3,0008 (S0)	T3=pointer to body's obj.offsets
	LW	T4,0010 (T3)	T4=pointer to offset for head placeholder (I think...)
	BEQ	T4,R0,7F0233F0	skip if there isn't one...
	SW	T4,002C (SP)	save head placeholder
	LW	T6,0000 (S1)	T6=pointer to head obj.table
	*SLL	T7,V0,0x1
	ADDU	T7,T7,V0
	BNEZ	T6,7F0233D8	
	OR	A0,S1,R0	A0=head obj.header
	SLL	T7,T7,0x2
	LUI	A1,8004
	ADDU	A1,A1,T7	A1=head table address
	JAL	7F07654C	load body/head using recall string A1
	LW	A1,DE14 (A1)	A1=pointer to head's text recall string
//7F0233D8:
//7F023430:	57F60
	*LBU	T4,000B (T3)	T4=head flag
	BNEL	T4,R0,7F023494	quit if merged head
	LW	RA,001C (SP)

+-+

7F0234D0	58000	
*SLL	T6,A0,0x1
ADDU	T6,T6,A0
LUI	T7,8004
ADDIU	T7,T7,DE10
SLL	T6,T6,0x2
ADDU	A3,T6,T7
LW	T8,0000 (A3)
...
//7F02354C:	5807C
*LBU	T2,000B (A3)
*SLL	T3,A1,0x1
ADDU	T3,T3,A1
BNEZ	T2,7F023570
SLL	T3,T3,0x2
LUI	T3,8004
ADDU	T4,T4,T3
LW	T4,DE10 (T4)


+-+

Rewrite of the new gender-ripping subroutine
7F023590:	0x580C0	returns T7=gender flag for body A0
00047040	*SLL	T6,A0,0x1
01C47021	ADDU	T6,T6,A0
000E7080	SLL	T6,T6,0x2	T6=head * 0xC
3C0F8004	LUI	T7,8004
01EE7821	ADDU	T7,T7,T6
03E00008	JR	RA
91EFDE1A	*LBU	T7,DE1A (T7)	8003DE1A: gender flag for body

+-+

7F02379C:	582CC	09 guards
*SLL 	T2, T1, 0x1
ADDU 	T2, T2, T1
SLL 	T2, T2, 0x2		//T2=T1*0xC
ADDU 	T3, T3, T2
*LBU 	T3, 0xDE1B (T3)		//T3=head flag


+-+

PLAYERS, MAYBE ALL CHARACTERS

//7F079FE0:	0xAEB10
	LUI	T9,8004
	ADDIU	T9,T9,DE10
--40	*SLL	T4,T2,0x2
	ADDU	T4,T4,T2
	SLL	T4,T4,0x2
	ADDU	V1,T4,T9
	LW	T8,0000 (V1)

//7F07A070:	0xAEBA0
	LUI	T7,8004
	ADDIU	T7,T7,DE10
--40	*SLL	T8,T5,0x2
	ADDU	T8,T8,T5
	SLL	T8,T8,0x2
	ADDU	V1,T8,T7
	LW	T3,0000 (V1)

//7F07A1BC:	0xAECEC
--40	*SLL	T8,T7,0x2

//7F07A1F8:	0xAED28
	LUI	T7,8004
	ADDIU	T7,T7,DE10
--40	*SLL	T6,T5,0x2
	ADDU	T6,T6,T5
	SLL	T6,T6,0x2
	ADDU	V1,T6,T7
	LW	A3,0000 (V1)
