"und" stands for "Undetermined", meaning the creator (of an mkv) didn't set a specific language code, which is common for video tracks. An exception would be Star Wars where you have that floating text at the beginning, which got translated in other languages.
"mis" stands for "Uncoded languages", meaning the language has no ISO-639-2 code. This was mistakenly stated as "miscellaneous" (instead of "missing") in iso639.py
"mul" stands for "Multiple languages"
"zxx" stands for "No linguistic content"
Since the mkv spec requires a language tag or the default value, filtering arbitrary valid values isn't the right way to go IMO. After all hachoir is supposed to show me the metadata, not to hide it. My filemanager already does that for me. ;)