Why add 20 to COINBASE_MATURITY there?
The underlying protocol accepts spent transactions at 100 (COINBASE_MATURITY) so this seems more like a measure to put people off spending until 120 confirms. If you are determined enough to hack your client, you can still spend before 120 but after 100.
Why is this?
Did Satoshi overestimate how many competing races there would be between mined blocks?