You could cure this particular effect of this felony definition-creep by prohibiting possession not by any "felon" but picking a fixed date, say 1950, and only prohibiting persons convicted of an act that was considered a felony on that date. This would do a couple things, both good: It would give the law legitimacy by restricting the definition of felony to one more people could consider sane, and two, it would remove one incentive to criminalize anything and everything. How do we know this isn't one reason for the explosion in the definition of felonies in the first place?
It would be easy enough to create categories of felonies, and a system for restoring rights after a certain period.