OmegaWiki ( http://www.omegawiki.org/ ) mostly uses three-letter language codes. It uses the Babel extension. Apparently the categorization that it uses is rather confusing.
For example, i have "heb-5" and i am categorized as "User he-5" - three letters in the template, but two in the category.
Some other users are currently categorized as "User heb", but if a null edit is made to their user page, it is re-categorized as "User he". This is confusing and wrong.
It is certainly OK to support two-language codes, but the site should be able to control the categorization. Maybe the extension should simply categorize by the code used in the template. And maybe the extension can allow the site master to force three-letter codes, i.e. two-letter codes simply won't work.