Common misconception. MAX_MONEY is merely the maximal amount of money allowed in single transaction.
Maximal amount of coins can be calculated by summing GetBlockValue with nHeight from 1 to infinity
Usually it does match (sum of block values is same as MAX_MONEY), but I've seen coins where they got this wrong by error (For example "42" coin was intended to have max. amount of coins 42, but the max is actually infinite, Astrocoin had their max corrected from 210000 to 140000 once I've shown them they got the sum wrong

), by design (max. number is infinity, like this coin, and as you can't put infinity there, you can find some arbitrarily large number there) and I've seen one coin, where MAX_MONEY was not constant but variable in time and this was intended as a part of coin design (NutCoin).
For offerings the code is actually quite complex and - the result is not 10 million, just see the source

Now the total amount of offerings in circulation is 992932.07 (block 193665), at block 10000000 it will be 2695515.38034441.
Number of coins will increase only 0.01 coins per block from block approximately 2400000 until eternity and near 227 million blocks it will exceed 10 million offerings.
newbie here, this coin looks like promising, what's the total amount of coins that will be mined?
static const int64 MAX_MONEY = 10000000 * COIN; // 10million coins total