Every year, I try to watch this and every year I am ready to turn it off before it's half over.
So here are my annual gripes/fixes that will never happen:
This thing went on WAY too long. It should last like an hour, maybe 90 minutes at the most.
If they need to fill more airtime, then maybe add a couple other competitions, quick ones with just a few competitors. Like fastest down the first base line, fastest around the bases. Just like 5 or 6 competitors for each. Farthest throw, from home plate toward the OF. Guys get one throw each to show off their arms. (Yes there would be a tiny risk of injury, but MLB doesn't care that hitters have blamed the HR derby for messing up their swings, so they shouldn't care about the tiny chance of someone getting hurt on one long throw or in running the bases one time.)
They could have a shorter first round of the HR derby, giving everyone like 10 swings total. Top 4 with the most HRs advance to the finals. After the first round, they have the baserunning and throwing competitions so the finalists get a little break. Then the final 4 hitters get 10 more swings.
Also, start earlier, so more kids can watch. Yes, people on the West Coast have to work, but kids don't. 7:30 here, 4:30 there is probably the best time for max kids appeal, which baseball really could use. The whole point is to show off how awesome these power hitters are, and kids are the ones most likely to be impressed.
Also, keep having an overall HR derby champion, but also give awards to the longest HR and the most overall HRs. More prizes, more glory, better showcase.
If you hit the ball further than everyone else in a HR derby, you should win a trophy of some kind. And if you hit more HRs than anyone else in a HR derby, you should also win a trophy. Have an overall champ, and trophies for Most HRs and Longest HR. Hitters could go for the Triple Crown of the HR derby by winning all 3.