It could also be fixed by making the penalty for filing an invalid patent prohibitively high. If someone proves prior art, you have to pay them "a mountain of cash". That way, there's A) a real risk in making your patent any broader than it needs to be and B) an incentive for law firms specialize in killing patents for the reward payout.
That's going to make it way easier for large companies who can afford a team of lawyers to hunt through potential infringements (and defend them). The cost of filing a patent is already really high (1000s, 10s of thosands) even without that.