Pour les écarts de score je ne saurais vous répondre mais concernant le niveau 20 j'ai la réponse, lorsqu'un joueur termine un niveau, on calcule son nouveau score en fonction du temps qu'il a fait et on augment le niveau (on crée également une nouvelle partie avec de nouvelles cartes au hasard).
Au niveau 19, le score est bien calculé, le niveau passe à 20 mais on ne renvoie pas la partie créée.
Dans le code, le niveau est donc passé à 20 et si on sauve le score, le niveau est à 20 mais cette partie n'est jamais renvoyée au joueur.
C'est plus ou moins un bug, le niveau affiché dans les meilleurs scores est le dernier niveau en cours et pas le dernier niveau terminé.
J'ai également trouvé la dernière mise à jour importante en août 2017 qui corrigeait un bug, au vu du bug je vais modifier le code pour les meilleurs score et ne tenir compte que des scores validés depuis cette date