Here's an idea: Don't allow tax deductions on "charitable" contributions. If, for instance, somebody wants to give $100MM to Central Park, let them do it because they like Central Park that much, rather than because they like it $70MM worth, and the tax payers can cover the other $30MM. Philanthropy is about giving, period. Not giving when it has financial benefits that make it easier at the expense of others.
I think it's perfectly reasonable to deduct charitable contributions - up to say, 10K per year. There exist people who sit on huge amounts of unrealized capital gains. If they donate 100M in stock, then they can sell 100M in stock without ever paying any taxes whatsoever.
There is at least one caveat to the above. As long as I donate to a 501(c)(3) entity, I can choose any entity I want - even one I control. The Bill and Melinda Gates foundation is an example of an extremely wealthy couple "donating" to an entity they effectively control. (I assume they do, since it bears their name. I haven't looked up their management structure.) This entity must use their donations in accordance with the entity's stated mission statement, or they risk losing their non-profit status. Beyond this, the donated money is still mostly controlled (within the bounds of the non-profit's stated mission) by the wealthy couple that donated. Aside from using the funds for "pet" projects with dubious public value, this opens up another potential caveat, non-profit bribery.
It is possible for donations or non-profit entity direction to be applied as a tax-free bribe. I might donate to develop a park in a city I hope to win a contract from. I could fund a non-profit campaign for reform on legislation that might benefit an industry my business is in. I could direct a non-profit I control to purchase supplies from a specific vendor as a favor for special consideration in pricing.