More My Little Pony than The Lord of the Rings, Stardust is a lighthearted comic fantasy romance apparently made by and for 12-year-old girls. The story: Boring Tristan (Charlie Cox) leaves his boring English town to venture into a fantasy world full of magic, princesses, and witches. Ostensibly, he's venturing there to catch a falling star to give to his snobby crush, Victoria (Sienna Miller), but once Tristan's on his grand quest, he discovers the fallen star has taken human form—and it looks a lot like Claire Danes. (Who's way hotter than Sienna, anyway.) And so begins a rambling mess of escapades and boredom, clichés and wit, and enough twinkling magic spells to make you never want to see glitter again.

There's plenty of heart and humor to be found in Neil Gaiman and Charles Vess' illustrated novel, on which Stardust is based; problem is, director Matthew Vaughan can't quite balance the tricky job of gently mocking the clichés of the fantasy genre while simultaneously making a film that's crammed full of them. From a narrative perspective, the film stalls for a good hour in the middle, with dubious character motivations, goofy romance, and the schemes of an eeeeevil witch (Michelle Pfeiffer) never quite gelling together. Just for good measure, there's also an all-too-brief appearance by Ricky Gervais, a slew of slapsticky ghosts who're friendlier than Casper, and—in surely the biggest "what the fuck?" moment in a film with more than its fair share—a prancing, cross-dressing, lisping, fabulously gay sky pirate played by Robert De Niro. (No, really—the fuck?)

In its final half-hour, Stardust gains some narrative momentum, cashes in on its loopy plot threads, and ends with just enough heart to be genuinely funny, sweet, and entertaining. But that comes at the end of a too-long road of cheap CG, hammy performances, uneven storytelling, and a few too many shots of Pfeiffer riding around in a goat-drawn carriage. (Yes. It is pulled by goats. Please do not ask me to explain.)