Completely different question... I remember reading something along the lines that a new block cannot be mined 2+ hours ahead of most recent block at the top of the blockchain. What happens when 12 freshly mined blocks are mined faster than in 2 hours? Do miners all over the world stop and wait until some time passes in order not to violate that rule? In other words, what happens to all miners if blocks are mined a little too fast for a few hours?
That rule isn't exactly as you describe it. It's actually 2 hours ahead of the adjusted network time, which is the median of timestamps from the node’s connected peers. However, contrary to what many people believe, this is not a part of the consensus rules—i.e., blocks that are mined with a timestamp more than 2 hours in the future are not invalid blocks; they are just not accepted.
For example, if my node's adjusted network time is 1:00 AM and your block's timestamp is 3:01 AM, my node would simply ignore it (which is different from rejecting it). However, if your node relays that block again two minutes later, when my time is 1:02 AM, your block will be accepted.
And no, miners won't stop; everyone would continue mining, and eventually, the longest valid chain would win, assuming none of the blocks it was built on are invalid.
MAX_FUTURE_BLOCK_TIME was implemented to prevent miners from artificially increasing difficulty. If all miners falsely claim their block took 10 hours to mine, the difficulty would increase drastically. This rule ensures that even if every block timestamp was manipulated to the maximum extent, the highest possible difficulty increase per adjustment period would be 2/336; that is slightly above 0.5% for every difficulty adjustment..