Here is a variation for ranking ballots that permit equal-ranking (and so would be an RCV-c system):
From each ballot, derive an "implied set of ranks". If the ballot ranks every candidate, the implied set of ranks equals the explicit set of ranks. Otherwise, add a rank at the bottom and fill it with the remaining candidates.
For each possible count of implied ranks, other than unity (which is an abstention and can just be thrown out), form a mapping via a logistic function, from each rank to a score. The sharpness of the logistic function is characterized by the mapping [6, 5, 4, 3, 2, 1, 0] => [100, 99, 90, 50, 10, 1, 0].
Use the mappings and rankings to derive a score for each candidate from each voter.
Proceed as before.
Some may say, why a logistic mapping and not a linear mapping? I ask them, why a linear mapping? I think fineness near the top will provide needed support to lesser-evil candidates in case true favorites don't win. Of course, any mapping from ranking to rating is imperfect and presumptuous, but I'm suggesting this as one of the least bad from the viewpoint of defeating two-party dominance (2PD) and as a sop to RCV advocates. They don't seem to appreciate the benefits of collecting actual scores from voters. And my example to try to show the importance of that is to compare the meaning and intent of Score votes Gore 0, Bush 1, Nader 100 vs. Gore 0, Bush 99, Nader 100. These would affect the pairwise scores of the candidates very differently in Score, but in RCV with whatever tallying, would collapse to the same vote Nader > Bush > Gore.