My German is relatively basic, but this is true for Dutch as well. 42 is pronounced twee-en-veertig (“two and forty”).
Spoken language was in existence before written language. Many numerals existing today were created long before reading was practised, so if there is any direction in a language at all, German does not “read” “backwards”, it speaks “backwards”.
But then, very likely numerals are not named with regard to direction at all, but for the logic behind counting. In Breton, the number eighteen has the name tri-ouch “three (times) six” – I cannot discern any direction in this numeral. In Finnish, eighteen is called kah-deksan-toista “two (from) ten (in the) second (ten)”. The logic seems to be to view the decades and then say how far into which decade we are. Again, there is no reading direction implied in the number name. Similar to this Finnish logic, Old Norse used a counting system not based on tens, but on dozens and multiples of the divisors of twelve (e.g. 60 = “Schock” in German). “364 days” in Old Norse is fiora dagar ens fiortha hundraths “four days into the fourth hundred (= 120)”. (Please note that “hundred” once meant 120.) I don’t claim to understand the logic behind “einundzwanzig”, but the question might be to understand the thinking behind numerals and find out about historic counting systems, not about reading direction.
In Old English, a language descended from Germanic dialects, numerals where “backwards”, too: fēowertīene “four-teen”, ān and twentiġ “one and twenty” etc., and you can still find remnants of an old vigesimal (base 20) counting system, e.g. “score” for 20.
There are many more languages that speak or read (some of) their numbers “backwards”, among them Greek, Latin (both directions possible), Celtic languages etc., and of course languages that actually read right to left like Arabic, where our written numbers come from. The question could be rephrased as: Why does English read their numbers in the wrong direction? Because obviously the “backwards” way is older and may even be more widespread (there are thousands of languages and we don’t know how they count; why should English be the norm from which to judge numerals?).
Source via Stackexchange.