Too much timing???

I have a 72 340 with a unilite 37 mechanical distributor. Supposed to have 20 degrees built in but seems to be 25 when engine is hot. Initial is set at 15 and reads dead on 35 when warm but after a drive and engine is at full temp reads 40 at about 3000 rpm. Pulled it and set it to only have 18 degrees advance built in. Set initial to 17 and was at 35 all in at 2500 rpm and stayed there up to 3500 rpm. Took it for a drive and rechecked it. Still reads 17 degrees initial and 35 degrees up to 3000 rpm then back to 40 degrees over 3000 rpm. Haven't pulled the distributor back out to check the settings again but will when it cools down. Any ideas on why it is changing? Do I need to worry, is 40 too high?

Do I understand this correctly; in both cases, after it got hot, the timing went to 40*, from 35* at over 3000?Even tho you changed the base timing?So really, all your work accomplished was to pull up the initial.
I have to ask; are you reving it high enough to set the initial, or stopping around 2500.
To me this almost sounds like the dizzy has a 2-stage spring kit in it: the first all in at 2500, but the second not all in, until further up the rev range.
What do you suppose might happen with the timing set cold, at the current 17/35, if you rev it to say 4500? What Ima thinkin, is that it stops at 35* @2500, but pulls in another 5* between 2500 and 4500;even cold!. Do you think that is possible?

The reason I ask, is cuz I have a curve similar to that in my 367. I have 28* by 2800, and then another 6* or so coming in later, by 3600IIRC. This allows me to bring in a ton of Vacuum advance(22*), like a total of 48/50 at 2800 for part throttle cruising. Smooths her right out, gives plenty of PT torque, and no pinging on 87e10.It's a great curve for a hi-compression street engine.