It's a problem if the indexing goes beyond the 8-bit range while the index register is still in 8-bit mode. For example:
Esper name displaying in most menus (this is not used to generate the esper list!)
C3/34E6: 201935 JSR $3519
C3/34E9: B91E00 LDA $001E,Y
C3/34EC: C9FF CMP #$FF
C3/34EE: F018 BEQ $3508 (branch if no esper equipped)
C3/34F0: 0A ASL A
C3/34F1: 0A ASL A
C3/34F2: 0A ASL A
C3/34F3: AA TAX
C3/34F4: A00800 LDY #$0008 (esper name length)
C3/34F7: BFE1F6E6 LDA $E6F6E1,X (Load Esper name)
C3/34FB: 8D8021 STA $2180
C3/34FE: E8 INX
C3/34FF: 88 DEY
C3/3500: D0F5 BNE $34F7
C3/3502: 9C8021 STZ $2180 (end this string)
C3/3505: 4CD97F JMP $7FD9A is 8-bit, while X and Y are 16-bit. Now imagine if it read like this:
Esper name displaying in most menus (this is not used to generate the esper list!)
C3/34E6: 201935 JSR $3519
C3/34E9: B91E00 LDA $001E,Y
C3/34EC: C9FF CMP #$FF
C3/34EE: F018 BEQ $3508 (branch if no esper equipped)
C3/34F0: 0A ASL A
C3/34F1: 0A ASL A
C3/34F2: 0A ASL A
C3/34F3: AA TAX
C3/34F4: A008 LDY #$08 (esper name length)
C3/34F7: BFE1F6E6 LDA $E6F6E1,X (Load Esper name)
C3/34FB: 8D8021 STA $2180
C3/34FE: E8 INX
C3/34FF: 88 DEY
C3/3500: D0F5 BNE $34F7
C3/3502: 9C8021 STZ $2180 (end this string)
C3/3505: 4CD97F JMP $7FD9Here, X and Y are 8-bit, which means any number greater than 255 would wrap back to 0, giving bad look-ups. There's no such thing as a "rom limit," only hardware limitations, and amount of effort you're willing to put into it.