The intent of the patent system is to encourage publishing innovation in exchange for rights to it for a period of time, and then everyone gets to use it. IMO the biggest problem has been granting patents for inventions that at least in retrospect seem non-novel or obvious. I get that there's a grey area there at some point, but "one click ordering" is one that comes to mind. Just because someone hasn't done it exactly like that before, should not make such a simple idea patentable. And I think patents should be on specific implementations, not general ideas. If I can implement the end-user experience of one-click ordering without substantially copying Amazon's underlying technology, that should be fair to do.
That's one problem. 25 years is also a really long time in fast moving fields like software, microchips, etc. And the format the invention is "published" as is essentially a legal document, often largely written by lawyers for a target audience of patent clerks and other lawyers, not a technical specification written for engineers and scientists. And the is an incentive to omit or obscure details important to actually replicating the invention.
>the biggest problem has been granting patents for inventions that at least in retrospect seem non-novel or obvious.
I don't agree that that's the biggest problem. I think the biggest problem is that patents are abused to stifle competition by refusing licenses or putting untenable fees on them. No one would have cared about Nintendo's D-pad patent if they'd just put a reasonable license fee on it. On the other hand, a patent like MP3 I would argue is quite legitimate, but putting a patent on a coded just makes interoperability more difficult. If MPEG had charged licenses for decoding chips and explicitly allowed software implementations, that would have things so much more smoother.