Rui,
I forgot to mention one more exception for tags. Any word that ends with a "@..." symbol is converted to MOR tag using "sf.cut" file located in grammar's root folder. For English example, this file will be in eng folder.
Tags that are separated by '+' characters are compound words. Those are words that are made up of two or more different words to create a new word. For example, in English word "hopscotch" consist of two words "hop" and "scotch" and it is listed in lexicon file "n+v+n.cut". MOR command tags this word as " n|+v|hop+n|scotch" the first tag is a noun, "n|", and is an overall tag for the word, The second tag "v|" indicates that word "hop" is a verb and the third tag "n|" indicates that word "scotch" is a noun. Thus in FREQ output you would see "n|+v+n" tag. The other compound tags are more complicated. For example, word "iceskating" consists on two words "ice" and "skating". "ice" is a noun, "n|", and word "skating" consists of parts "skate" and "ing", i.e. "n|" and "n:gerund|". Thus resulting tag for word "iceskating" is "n:gerund|+n+n". Compound words can either be literally listed in lex file like word "hopscotch" or can consist of tags representing its components like word "iceskating".
So, all the tags in MOR come from lex files, sf.cut file and $part-of-speech tag on main speaker tier. But, how those tags are arranged together in the end is a function of MOR command.
For more information I strongly encourage you to read chapter "11 MOR – Morphosyntactic Analysis" in CLAN's manual located at URL:
Leonid.