Don't know about that 3100 vs 1200. He may have just transposed numbers in his head for a second. ATC may use a Mode C altitude that differs by less than 300' from reported altitude and shouldn't have you stop altitude squawk until it does. A lot of things can affect altitude. Older systems required manual altimeter setting input from the controller. Those altimeter settings typically came in hourly. Rapidly rising or falling pressures combined with the timeliness of readings can add up. Another factor is pressure gradients. If there is a steep gradient and your flying quite a distance from the source of the altimeter setting, that's going to add up to depending on which way the gradient is "leaning." Another factor that can throw things off is Bernoulli effect. If your flying over rough terrain it can add up to if the wind is blowing at a pretty good clip. Think of the mountains as the top of a wing and the mountain passes as the Venturi of a carburetor. Increased velocity = lower pressure. "High to low, watch out below." It is the primary reason for the 2000' terrain clearance rule in Designated Mountainous Areas. While that shouldn't affect Mode C read outs much because both your Altimeter and the encoding altimeter are going up and down together, differences between the accuracies could show some difference.