With this many special cases, wouldn't it be just easier to make a table, mapping old meta to new meta?