Here's an idea.
What about if we replaced MMP with a ballot where you write a single name in the box. If you don't want your votes to be claimed by someone else with the same name, you could register a claim to an official version of your name. Then the 100 people with the most votes become MPs. Simple.
So what would change?
Small one man parties (they usually are men) could not risk spreading votes among several candidates, so would have to maximize their votes in their one celebrity. This would avoid the situation where one person's popularity brings a whole lot of ring-ins into parliament, and reduce their voting power. Sweet, looks good so far.
Minor parties could divide and conquer the country, with candidates aligned to their natural support bases. This could be regional or nationwide. For example you could be the candidate for Northland or the candidate for youth voters.
Major parties could use their party machinery to organize a network of regional candidates, and inform supporters who to vote for. Eg. Send a letter to every voter saying - if you like us, we want you to vote for Sharon. However they would need to assign more potential voters to important candidates such as their leader or cabinet ministers.
Another benefit would be that a lot of votes would get soaked up by celebrity candidates and party leaders, so the threshold for getting in at numbers 90-100 would be lower than the current threshold for electorate or party seats. This would provide a new window for organized groups to enter parliament.
So all good. Fairer diversity, and no-one gets into parliament when no-one knows their name.