Some people wondered about how McGwire compared to his contemporaries. Others wondered about how other players, who, like Big Mac, had injuries in their younger years. So I decided to simply find all of the players with 2,000+ PAs from ages 31-37 who also had at least 500 PAs under age 31 (that low PA total was so I would not leave anyone out). Then I found their relative SLG in both age periods and found the ratio of the old relative SLG to the young. Ken Caminiti finished first. His "young" relative SLG was 94 while his "old" was 124. So gets 124/94 = 1.32. That was the higest old/young ratio. So his SLG improved the most, relative to the league average. You can see the complete rankings by clicking here.
McGwire finished 7th. Some of you might realize that guys who finished high, like Caminiti, played their younger years in tough hitters' parks (he played in the Astrodome). Other guys, like Skeeter Newsome, played a good part of their olders years during WWII when the competition was not so good. That helps his rankings (spending time doing studies like this is worth it just for learning about guys named Skeeter). This particular ranking does not included park adjustments. Parts 1 and 2 did, and McGwire did very well in those cases.
As for injuries, I don't know how to adjust for that. I don't know how much McGwire's relative SLG was held down in his early years, though. If he played hurt it was. But if only played when he was 100%, then his relative SLG was not affected. Readers will have to judge for themselves how he compares to others who played hurt. I don't know for sure who they might have been.
One commentor asked about pitch selection. Certainly players who get better at only swinging at good pitches will hit better. But how do you measure that? You could use walk rate. But guys who slug better get walked more anyway. So it would not be clear what you are measuring.
And Hal Chase finished 19th. But he never cheated.