Sorry newbie question here. If someone change the limit to say 100 mil, and compile the client, and if many people use the client for mining, would it accept the coins to more than 21 mil?
Does the blockchain has a "seal" that contain info that 21 mil is the max?
It's built into the protocol, not the block-chain. The protocol dictates the change in 'difficulty' based on how long it takes the hashing pool to find the next 2016 blocks; the protocol is designed around this taking 2 weeks. If it takes less than two weeks the new 'difficulty' will be higher than if it had taken longer than two weeks. In either case, the difficulty will continue to increase until it becomes mathematically impossible to mine new blocks. By design, this will happen after the (I believe) 5,120,000th block in the chain has been found.
At that point the difficulty should be greater than the size of a block hash. So it's the increasing difficulty that ultimately determines the number of coins in circulation, not anything inherent in the block-chain.
A lot of wrong information. Your right it is the protocol which prevents more than 21M coins however the mechanics are all wrong.
1) Mining will always continue. The day mining stops is the day Bitcoin is dead.
2) Difficulty rises based on hashpower but that has nothing to do with the subsidy.
3) The block subsidy began at 50 BTC and is cut in half ever 210,000 blocks (regardless of hashpower or difficulty)
4) Difficulty can never get so high it is impossible to mine a block. If difficulty is too high the time between blocks will increase and thus difficulty will go down.
TL/DR
The subsidy cut is what caps the number of BTC.
Difficulty is used to keep the average time between blocks constant.