I found some issues when I want to use a mapping template with a field of the "tokens" input type. I have a template to turn BCP 47 language tags into English language names.
{{{field|language|values=en, es, de, fr|input type=tokens|mapping template=BCP47}}}Values from properties do not map
I am forced to hardcode the |values= instead of |property=Language code
Does not map if loaded with two or more tokens
If a user starts with a blank form and picks "English" and saves, "en" is put in the |language paramter. When they view the edit form again, "English" prepopulates the language as expected. This applies to "Preview" and "Show changes", too.
But if they pick "English" and "Spanish". Before they've saved or previewed, it behaves normally, but if they save or preview, "en" and "es" prepopulate the language field instead, and even weirder is, "en" and "es" get added to the token dropdown while "English" and "Spanish" remain as options.