Each player and main.dat is ~11MB of allocation to read; old would read & decrypt into separate array = 22MB * (1 + playerCount). Cutting this in half reduces the amount of allocation and keeps stuff off gen2 LOH
Replaces a byte sequence with the updated sequence of data, using the player/town ID as a prefix to ensure that short names can be changed correctly without affecting other game data (hopefully).