I think they should just cap it at four people from any one team on the ballot. There's four teams (Blackhawks, Red Wings, Flyers and Sharks) with more than four players on the ballot, cutting them down to four would open up five spots for other players.
Drop Campbell and Seabrook from the Blackhawks' list. Drop Rafalski and Franzen from the Red Wings' list, then add Howard. Drop Briere and Carter from the Flyers' list, then add Giroux. Drop Niemi from the Sharks' list.
Then add Alexander Semin, Loui Eriksson, John Michael-Liles, Keith Yandle and Biznasty. Guys that are currently injured and will be injured during the All-Star game (such as Oshie) can have other players subbed into their spot before voting opens on Monday. It's all electronic, although the NHL will probably just ignore that fact.
There's always write-in votes, I guess.