Once upon a time there was a young girl in high society named Penelope. Penelope was the poor victim of an ages-old curse placed on her family – yes, a real, genuine, curse. This is a fairy tale, or did you miss the “once upon a time” opening? Anyway, Penelope was born with the ears and snout of a pig, a curse that would hold until she was accepted by one of her own until death. With the would-be debutante’s looks tainted until the curse is lifted, Penelope’s mother kept the girl confined to the house, unseen by anyone but blue-blood potential suitors, all of whom would run away at the first sight of Penelope.

As a modern day fairy tale, that’s actually an incredibly good premise for Penelope, the long delayed film from first time feature director Mark Palansky. You would think the movie taking almost a year to hit theaters would be a bad sign, but the truth is Penelope is pretty good, with the few weaker and predictable moments in the script overshadowed by the performances by its talented cast.

Christina Ricci, one of my favorite actresses, plays the title character with quite a bit of skill. Her voice-over narration, telling the story as if reading it from a fairy tale book, is a bit dry, without much variation in her voice regardless of what kind of mood the storyteller is trying to build. Thankfully her on screen performance makes up for that, with part of the movie forcing the actress to emote through a scarf, with only her eyes to help her. She doesn’t quite reach the same level of performance Hugo Weaving had in V for Vendetta, but it’s still a capable performance.

Fans of James McAvoy will be surprised to see him in a flick like this after his recent success in Atonement (remember this movie came first). He brings a great amount of depth to a character that needs to be deeper than the other shallow suitors that follow Penelope. His shaggy looks are usually something that would have me shouting for a comb and scissors, but it fits the character very well, so we’ll forgive him this time (but seriously, find some scissors).

Better than Ricci and McAvoy are the supporting cast. Catherine O’Hara gets a chance to shine in a serious role again as Penelope’s over-protective mother. It’s almost enough to knock the bad taste out of my mouth for O’Hara’s role in For Your Consideration. Producer Reese Witherspoon plays a decidedly against-type part for the actress as a barfly courier that encounters Penelope after she escapes into the outside world. Gone is all the southern accents and saccharine sweetness of Witherspoon’s previous work and I wish the part was a little bigger than the ten minutes or so she’s on screen. Quite possibly the strongest performance, however, comes from Peter Dinklage, who proves again his ability to make brilliant choices in building a strong, memorable character, even when that part is quite clearly etched out by the story.

Considering the fascination our culture has with celebrities and appearances, and the current power (and problem) of the paparazzi, Penelope couldn’t come at a more appropriate time. The story is the perfect allegory for our culture – a message that there is more to a person than the way they look, and that the lengths reporters and press go to in following celebrities can be incredibly damaging.

While the story’s few twists are quite predictable in reaching that message (particularly in the final third of the story which looses some of the cohesion of the earlier parts), I’m willing to forgive that for such a strong message and some great performances. This is a fairy tale after all, and once you’re familiar with that genre almost any story’s plot will become fairly predictable. It’s how the story overcomes that predictability that shows its value – proving Penelope’s own message – it’s not the surface level of the story but the underlying meaning that defines the movie, and Penelope delivers a “happily ever after” we can all live with.