Maybe I'm playing incorrectly, but I always played that both Oberon and Morgana are evil. Morgana appears as Merlin, and Oberon knows who all the other evil people are but they don't know who he/she is.
So in the reveal phase :
1) All the evil team would open their eyes put their thumbs out and see each other EXCEPT OBERON (So this could possibly be the Assassin, Morgana, Mordred and any other minions).
2) The evil people would all put their thumbs up and Oberon would open their eyes and have a chance to see who their team is.
3) All the evil people INCLUDING OBERON would put their thumbs up EXCEPT MORDRED and Merlin would have his chance to see.
4) Then Percival would see Morgana and Merlin with their thumbs up not knowing which was which.
I was under the impression Oberon was evil, but the rest of the evil team didn't know who they were. This may not be the correct way but it has worked for us.
And as for revealing characters at the end of the game I guess it is technically wrong, but we've always had all the evil people reveal their characters at the end (including Oberon) then the evil team discusses who they think is Merlin, but the Assassin gets the final say. Usually knowing who Mordred was gives a lot of clues, because Merlin may not have accused them right away. We've found the discussion doesn't give evil too much of an advantage and is fun. So we always have reveal evil their characters, then the entire evil team discusses, and at the end the Assassin just has to say "I assassinate ______" to make their choice.