And going back to our common roots..Latin:
Decem, viginti, triginta, quadraginta, quinquaginta, sexaginta, septuaginta, octoginta, nonaginta, centum.
21 = viginti unus (like 20 + 1)
29 = undetriginta (like 30 - 1)
BTW, have a look at translations in Esperanto..a funny experience indeed, since it looks like someone putting together random constructs from a few languages!