Alright I think the hack is good to go. Just need the external editor to edit the plays now. Here is the code with a few notes on how it works. I may add more notes later to remind me how it all works...
8024BB9C: J 0x80070D88 //jump out of function that loads cheats to inject our new code
8024BBA0: SW S3, $0x0010 (SP)
//func_loaddata
80070D88: NOP
80070D8C: ADDIU S7, S7, 0x0022 //set s7 to 22
80070D90: BNE S7, S3, 0x800713AC//is s7 != s3? If so, its another cheat; jump out
80070D94: SW R0, 0x0014 (SP)
80070D98: NOP
80070D9C: J 0x80071298 //jump to other part of function that saves registers
80070DA0: SW R0, 0x0000 (T0) //make sure use team plays cheat always resets to 0 so you can activate it again
//func_regs
80071298: SUB S3, S3, S3
8007129C: ADDIU S3, S3, 0x002C
800712A0: MULT S4, S3
800712A4: MFLO S3
800712A8: LUI S7, 0x8025
800712AC: ADDIU S7, S7, 0x0DEC
800712B0: ADD S7, S3, S7
800712B4: NOP
800712B8: SUB S3, S3, S3
800712BC: ADDIU S3, S3, 0x0022
800712C0: NOP
800712C4: NOP
800712C8: NOP
800712CC: NOP
800712D0: SW S4, 0x0000 (S7)
800712D4: SW K0, 0x0028 (S7)
800712D8: ADD K0, S4, R0
800712DC: SW S8, 0x0004 (S7)
800712E0: SW V0, 0x0008 (S7)
800712E4: SW V1, 0x000C (S7)
800712E8: SW T1, 0x0010 (S7)
800712EC: SW T2, 0x0014 (S7)
800712F0: SW T3, 0x0018 (S7)
800712F4: SW T6, 0x001C (S7)
800712F8: SW T7, 0x0020 (S7)
800712FC: SW T8, 0x0024 (S7)
80071300: SUB S7, S7, S7
80071304: SUB S8, S8, S8
80071308: SUB V0, V0, V0
8007130C: SUB V1, V1, V1
80071310: SUB T1, T1, T1
80071314: SUB T2, T2, T2
80071318: SUB T3, T3, T3
8007131C: SUB T6, T6, T6
80071320: SUB T7, T7, T7
80071324: SUB T8, T8, T8
80071328: ADDIU T6, T6, 0x0004
8007132C: MULT T6, A3
80071330: MFLO A3
80071334: LUI S4, 0x8029
80071338: ADDIU S4, S4, 0x42A0
8007133C: ADD S4, A3, S4
80071340: LW A3, 0x0000 (S4)
80071344: LUI S7, 0x800B
80071348: ADDIU S7, S7, 0xE330
8007134C: J 0x80070DA4 //jump back to previous // break
80071350: NOP
//func_loaddata
80070DA4: LUI S4, 0x800B
80070DA8: ADDIU S4, S4, 0xE330
80070DAC: LW T2, 0x0000 (S4)
80070DB0: BEQ T2, R0, 0x80071358
80070DB4: NOP
80070DB8: SUB V0, V0, V0
80070DBC: SUB V1, V1, V1
80070DC0: SUB T1, T1, T1
80070DC4: SUB T2, T2, T2
80070DC8: SUB T6, T6, T6
80070DCC: SUB T7, T7, T7
80070DD0: SUB T8, T8, T8
80070DD4: SUB S4, S4, S4
80070DD8: ADDIU T1, T1, 0x1378
80070DDC: MULT A3, T1
80070DE0: MFLO T2
80070DE4: ADDIU T8, T8, 0x1380
80070DE8: LUI V0, 0x802B
80070DEC: ADDIU V0, V0, 0xDF20
80070DF0: ADD V0, T2, V0
80070DF4: NOP
80070DF8: ADDIU T6, T6, 0x0004
80070DFC: MULT T6, A3
80070E00: MFLO T6
80070E04: LUI S4, 0x800B
80070E08: ADDIU S4, S4, 0xE334
80070E0C: ADD S4, T6, S4
80070E10: LW T7, 0x0000 (S4)
80070E14: MULT T7, T8
80070E18: MFLO T7
80070E1C: LUI S8, 0x800B
80070E20: ADDIU S8, S8, 0xE370
80070E24: ADD S8, T7, S8
80070E28: DIV T7, T8
80070E2C: MFLO T7
80070E30: ADDIU T7, T7, 0x0001
80070E34: NOP
80070E38: SUB T8, T8, T8
80070E3C: NOP
80070E40: NOP
80070E44: ADDIU T8, T8, 0x0004
80070E48: BEQ T8, T7, 0x80070E58
80070E4C: SUB T8, T8, T8
80070E50: J 0x80070E70
80070E54: SUB T6, T6, T6
80070E58: SUB T7, T7, T7
80070E5C: NOP
80070E60: J 0x80070E70
80070E64: SUB T8, T8, T8
80070E68: J 0x800E5B68
80070E6C: NOP
80070E70: SUB T6, T6, T6
80070E74: SUB T7, T7, T7
80070E78: ADDIU T8, T8, 0x1350
80070E7C: SUB S7, S7, S7
80070E80: ADD V1, T8, S8
80070E84: NOP
80070E88: LW T6, 0x0000 (S8)
80070E8C: LW T7, 0x0004 (S8)
80070E90: LW S7, 0x0008 (S8)
80070E94: LW T8, 0x000C (S8)
80070E98: SW T6, 0x0000 (V0)
80070E9C: SW T7, 0x0004 (V0)
80070EA0: SW S7, 0x0008 (V0)
80070EA4: SW T8, 0x000C (V0)
80070EA8: ADDIU S8, S8, 0x0010
80070EAC: BNE S8, V1, 0x80070E88
80070EB0: ADDIU V0, V0, 0x0010
80070EB4: SUB S8, S8, S8
80070EB8: NOP
80070EBC: NOP
80070EC0: NOP
80070EC4: SUB S7, S7, S7
80070EC8: SUB T8, T8, T8
80070ECC: SUB T1, T1, T1
80070ED0: SUB T2, T2, T2
80070ED4: SUB S4, S4, S4
80070ED8: SUB T3, T3, T3
80070EDC: SUB T6, T6, T6
80070EE0: SUB V0, V0, V0
80070EE4: SUB V1, V1, V1
80070EE8: J 0x80071354 //jump to other func_regs to load back registers
80070EEC: SUB S4, S4, S4
//func_regs
80071354: SUB S3, S3, S3
80071358: ADDIU S3, S3, 0x002C
8007135C: MULT K0, S3
80071360: MFLO S3
80071364: LUI S7, 0x8025
80071368: ADDIU S7, S7, 0x0DEC
8007136C: ADD S7, S3, S7
80071370: SUB S3, S3, S3
80071374: ADDIU S3, S3, 0x0022
80071378: LW S8, 0x0004 (S7)
8007137C: LW V0, 0x0008 (S7)
80071380: LW V1, 0x000C (S7)
80071384: LW T1, 0x0010 (S7)
80071388: LW T2, 0x0014 (S7)
8007138C: LW T3, 0x0018 (S7)
80071390: LW T6, 0x001C (S7)
80071394: LW T7, 0x0020 (S7)
80071398: LW T8, 0x0024 (S7)
8007139C: LW S4, 0x0000 (S7)
800713A0: LW K0, 0x0028 (S7)
800713A4: NOP
800713A8: NOP
800713AC: J 0x8024BBA4 //return to original code for cheats
800713B0: SUB S7, S7, S7
//func_writeText
8024BCF4: J 0x800068F7C //jump out of func that writes text to make it read from playbook titles
8024BB9C: LUI A2, 0xFF00
//func_writeCustomBookText //this part fixes the text to show the book names and for the correct
players
80068F7C: ADDIU S7, S7, 0x0022
80068F80: BNE S3, S7, 0x80069080//is it the right cheat? Branch if not out of this part
80068F84: SUB S7, S7, S7
80068F88: SUB S2, S2, S2
80068F8C: ADDIU S2, S2, 0x0004
80068F90: MULT S2, S4
80068F94: MFLO S4
80068F98: LUI S7, 0x8029
80068F9C: ADDIU S7, S7, 0x42A0 //address where game tracks which player is in each slot
80068FA0: ADD S7, S7, S4
80068FA4: LW S7, 0x0000 (S7)
80068FA8: LUI A3, 0x800B
80068FAC: ADDIU A3, A3, 0xE334
80068FB0: MULT S7, S2
80068FB4: MFLO S7
80068FB8: ADD A3, S7, A3
80068FBC: LW S7, 0x0000 (A3) //loads correct address from book tracker
80068FC0: NOP
80068FC4: NOP
80068FC8: NOP
80068FCC: NOP
80068FD0: LUI A3, 0x800B
80068FD4: ADDIU A3, A3, 0xE370 //location of beginning of book 1
80068FD8: SUB S2, S2, S2
80068FDC: ADDIU S2, S2, 0x1380 //offset of entire book to skip to different books in multiples of 1380
80068FE0: MULT S7, S2
80068FE4: MFLO S2
80068FE8: ADD A3, S2, A3
80068FEC: SUB S3, S3, S3
80068FF0: ADDIU S3, S3, 0x0004
80068FF4: ADDIU S7, S7, 0x0001 //increase value of book number tracker
80068FF8: BEQ S3, S7, 0x8006905C//is the book tracker == 4? if so, branch to reset it to the first book
80068FFC: SUB S2, S2, S2
80069000: NOP
80069004: LUI S2, 0x8029
80069008: ADDIU S2, S2, 0x42A0
8006900C: ADD S2, S4, S2
80069010: LW S2, 0x0000 (S2)
80069014: MULT S2, S3
80069018: MFLO S2
8006901C: SUB S3, S3, S3
80069020: LUI S3, 0x800B
80069024: ADDIU S3, S3, 0xE334
80069028: ADD S3, S3, S2
8006902C: SW S7, 0x0000 (S3)
80069030: SUB S7, S7, S7
80069034: ADDIU S7, S7, 0x0004
80069038: DIV S4, S7
8006903C: MFLO S4
80069040: SUB S7, S7, S7
80069044: SUB S3, S3, S3
80069048: ADDIU S3, S3, 0x0022
8006904C: SUB S2, S2, S2
80069050: ADDIU S2, S2, 0x0008
80069054: J 0x8024BCFC
80069058: NOP
8006905C: SUB S7, S7, S7
80069060: NOP
80069064: NOP
80069068: NOP
8006906C: J 0x80069000
80069070: NOP
80069074: NOP
80069078: J 0x8024BCFC
8006907C: NOP
80069080: J 0x8024BCFC
80069084: LW A3, 0x2F84 (A3)
80069088: NOP
8006908C: SUB R0, R0, R0
80069090: ADDU R0, R0, R0