I have been tweeking adsense pages for years (sometimes too much

) the drop in rev could be for a dozen or more reasons .. more than likely they modified there alg and caught you broadside.
I have noticed that the more traffic a site gets over time the lower the rev per 1000 becomes. If you have a high return visitor rate this will also effect your RPM.
Just recently I noticed that your URL has a greater effect on the ads displayed than the content! (at least this is what was happening for me) ... I solved the problem by creating a new site with the best keywords in the url and slowly linked all the traffic to the new site (rpm jumped 400%).
Lastly inbound traffic can a does effect your RPM ... I doubled my traffic on one of my sites and roughly doubled my total number of clicks (crt was the same) by getting link traffic but the total rev for the site droped by %50! My big lesson was that the keywords of the site sending you traffic actually make a huge diffrence in your RPM.
I hope this helps but in the end who really knows what google is up to!