When looking through Monero's source code I was intrigued by the choice of the Mnemonic's 25th word which is defined as follow:
Which calls:
return result.checksum() % crypto::ElectrumWords::seed_length;
In short, a modulo of 24 is applied on the CRC32 result which then represents the index of a word in the current Mnemonic Seed.
Why was the choice made to reduce CRC32's effect by applying a modulo 24 (and pick a word from the Mnemonic Seed) rather than a modulo 1626 (and pick a word from the dictionary)?