Ooh here’s a dumb idea:
48 players go to All Star Weekend but none of them are on the All Star Teams yet... the teams are decided by the activities of Saturday. The top vote getter from each team, plus the top 8 vote getters after that, plus 10 coach-chosen players.
The activity participants come from the 48 players picked to go to the weekend. Each player picks one event to participate in.
The top 4 overall vote-getters in the league get in and get a rest until Sunday (4 out of 48 players)
Top 4 dunk contest finalists (4 out of 8 players)
Top 4 three point contest finalists (4 out of 8 players)
Top 4 three-on-three tourney teams (12 out of 24 players)
Then after all that, the top two overall vote getters do a live draft to pick from the 22 other players to end the day.
There will be suspense all day to see who makes the draft pool, and every team will be represented. Players who aren’t dunkers or specialists can play in the tourney (to 21, half court, two games going at once) and gain practice time with their teammates who also get in with them if they win.
The three point contest will happen between round 1 and 2 of the tourney to give teams a rest. The dunk contest between round 2 and the finals.
Players will try for that ASG bonus and the glory. Charities will get donations from winning players and teams. Everyone goes home happy.