Like everyone has mentioned. But as far as your temperature goes, a higher temperature under everything and in the hides is perfectly normal, they all trap the heat and it gets lost as it goes through all these. Any surface that the ball python can touch should never exceed 95; I'm not sure how good your terrarium mat is at conducting heat and how secure it is, whether or not it is possible for the snake to dig out its corners and get under it. But if it is not that secure, then yes I would worry about him getting burnt.

But anyhow I would probably use a thermostat with its probe under the terrarium mat under the hide. Set to 95 maybe? Hopefully it wont lose too much heat through that mat. So it'll be warm enough on the hot side but just in case your snake gets under it, he won't get hurt. If it does drop to something like 85 or even less by the time it gets to the surface of the mat, I would think of changing bedding. You might think of raising the temperature setting of the thermostat since its below the mat and they probably wont get there anyway. And some might say well even if they do get under the mat they won't get burnt on 95-100, afterall when we handle them they experience about that kind of temperatures, but its not good for them to be exposed to that for any sustained period of time. I had a temperature spike to 97-98 just for a couple of hours once, my snake got all red on his belly, definitely was uncomfortable. Its a risk you shouldn't take, since there are many much simpler ways to get around this problem.

As for the lamp goes, I do have lamps but I have them on only when its absolutely necessary. In other words they are connected to thermostats which are set at 78F, just so the ambient temperature doesn't get too low. Mainly because it kills humidity really badly and I don't find them reliable for temperature control anyway. But temperature always takes precedence over humidity.

I do recommend thermostats over rheostats, they are much safer in the sense that they change with changing room temperatures, while a rheostat does not.