James McAvoy was 25 in Penelope when he played the character 'Johnny/Max'.
That was over 18 years ago in 2006.
Today he is 45, and has starred in 55 movies in total, 41 of those since Penelope was released.
In Penelope, I think James McAvoy looks: