It should instead be 1 - 100%, 2 - 50%, 3 - 0%

Also I see no problem with scaling xp based on performance without making sure that if you do bad you get max xp still. Why not reward good players with max xp and scale down from there?