Considering the insane amount of superhero movies that come out each year it's not surprising that characters get recast all the time. But while we expect characters to get recast in case of a reboot, we tend to get frustrated when the recasting happens in the middle of a franchise or within the same universe. There's really no painless way to recast a role essentially mid-story. But, sometimes it simply has to be recast for a variety of reasons. Perhaps the actor who played the character in previous movies just doesn't want to do it anymore. Or, maybe a new actor is cast because the movie needs to show a younger/older version of the character. Alternatively, sometimes irreconcilable "creative differences" (code for behind the scenes quarreling) lead to a recast.

Whatever the case is, the result doesn't always have to be the worst possible scenario. There have been cases when the recasts worked out for the best. After all, it is possible that the studio just didn't get it right the first time. For this list we considered characters that were recast within a superhero franchise or a shared universe. For example, Ben Affleck replacing Christian Bale as Batman wouldn't count, since The Dark Knight trilogy is not a part of the current DC cinematic universe (that we know of). On the other hand, the Burton and Schumacher Batman movies, while considerably different, are widely understood as being part of the same universe. With that out of the way, let's see which recasting decisions worked and which didn't.

20 BETTER: DON CHEADLE AS WAR MACHINE

Don Cheadle as War Machine looking over his shoulder in the sky

In the first Iron Man movie, Colonel James Rhodes, aka War Machine, was portrayed by the Empire star Terrence Howard, who was supposedly the highest paid actor on set. However, when Marvel refused to give him a raise for Iron Man 2, Howard walked away.

So, Don Cheadle was recast as Rhodey and he’s been playing the character ever since Iron Man 2. This recasting worked out for the better, even though the change was initially jarring since the two actors look nothing alike. But, since Cheadle is doing such an amazing job, he easily surpassed his predecessor. Replacing Howard with Cheadle is one of MCU's best casting decisions.

19 WORSE: SOPHIE TURNER AS JEAN GREY

Sophie Turner Jean Grey

In X-Men: Apocalypse, the original X-Men team got recast in order to depict younger versions of the characters. Jean Grey, who had been played by Famke Janssen thus far, was replaced by the Game of Thrones actress Sophie Turner.

Janssen was in no way perfect in the role of Jean Grey, and things certainly took a turn for the worse when she switched into Phoenix mode in X-Men: The Last Stand. However, Turner’s performance (and the Apocalypse script) couldn’t even compete with that. But, perhaps we’re passing judgment too early -- Sophie Turner still has a chance to impress us in the upcoming Dark Phoenix film.

18 BETTER: MARK RUFFALO AS BRUCE BANNER

Mark Ruffalo as Bruce Banner

The curious case of Bruce Banner is at the same time the most jarring and the most negligible recasting in the Marvel Cinematic Universe. The former because it involves one of the core members of the Avengers, and the latter because, let’s face it, no one really cares about the Edward Norton The Incredible Hulk film.

It was the second movie in the MCU, doesn’t really tie into anything else, and any and all stories and characters (save for Bruce Banner) have been abandoned. Norton’s Banner and Ruffalo’s Banner don't even act like the same character. We prefer the Ruffalo version, especially the post-Ragnarok Banner.

17 WORSE: VAL KILMER AS BATMAN

Val Kilmer Batman

Before the George Clooney disaster of 1997, Gotham’s Caped Crusader was portrayed by Val Kilmer in Batman Forever. Kilmer replaced the beloved Batman actor Michael Keaton, who played the character in two previous films.

Michael Keaton left the franchise when Warner Bros. decided to give the director’s chair to Joel Schumacher, instead of Tim Burton, in an effort to make the movie less dark. Though Kilmer wasn’t the worst Batman, he was no Keaton either. His wooden performance is one of the worst parts of an otherwise below average film. Luckily for Kilmer, George Clooney would soon take up the mantle and give us the worst Batman ever.

16 BETTER: ZACHARY LEVI AS FANDRAL

Zachary Levi Fandral

Zachary Levi who will soon be making his debut as Shazam was until very recently part of the MCU. The Chuck star portrayed Thor’s friend Fandral in Thor: The Dark World and briefly in Thor: Ragnarok. However, before Levi got to put on a silly blond wig, that honor belonged to Once Upon a Time actor Josh Dallas.

Dallas left after the first Thor movie due to conflicting schedules with Once Upon a Time and the part went to the lovable Zachary Levi, and you can never go wrong with Levi. Too bad his talents were wasted on such a small part.

15 WORSE: GEORGE CLOONEY AS BATMAN

George Clooney as Batman in Batman and Robin

The real-life playboy George Clooney as the fictional playboy Bruce Wayne sounds like a reasonable, almost ideal, casting decision. Oh, what could possibly go wrong? Well, about that... Clooney replaced Val Kilmer in Joel Schumacher’s Batman & Robin, and out of all the actors who have portrayed Batman over the years, Clooney stands as the worst Batman of all-time.

Though to put all the blame on Clooney would be not only unfair, but also inaccurate. His Batman was equally a product of his poor performance, and other influences such as poor writing, spotty costume design and overall misguided direction.

14 BETTER: JOSH BROLIN AS THANOS

Marvel Studios' AVENGERS: INFINITY WAR..Thanos (Josh Brolin)..Photo: Film Frame..©Marvel Studios 2018

It’s impossible to imagine Thanos speaking with a voice that isn’t Josh Brolin’s gruffy tone, especially after spending a whole movie with Thanos as the protagonist. But, Thanos wasn’t always portrayed by Josh Brolin. In the post-credits scene of The Avengers, which marked Thanos’ first appearance, Damion Poitier played the Mad Titan.

However, once time came for Thanos to actually have lines in a film, Poitier was replaced by Josh Brolin. Obviously, Marvel wanted a big name for the role of the biggest bad in the MCU. That big name ended up being Josh Brolin, who helped make Thanos the iconic villain he is.

13 WORSE: BRANDON ROUTH AS SUPERMAN

Brnadon Routh Superman

Brandon Routh is currently protecting time and history with the Legends on The CW’s Legends of Tomorrow. However, before he put on the Atom suit, Routh played the Man of Steel in Bryan Singer’s Superman Returns.

According to Singer, the movie takes place after the first two Superman films with Christopher Reeve, while ignoring the third and fourth movie. Routh was cast to replace Reeve as Clark Kent, and while he wasn’t a horrible Superman, he couldn’t live up to the legacy of the late Christopher Reeve. Though, in all fairness, Reeve has yet to be surpassed by any other Superman actor.

12 BETTER: NICHOLAS HOULT AS BEAST

Nicholas-Hoult-as-Beast-in-X-Men

Most actors who have portrayed the X-Men in the original trilogy have been recast in recent movies because the movies take place in an earlier time. Hence, the characters need to look younger. Actor Kelsey Grammer portrayed Dr. Hank McCoy in X-Men: The Last Stand, but he was later replaced by Nicholas Hoult in X-Men: Days of Future Past.

While Grammer’s performance wasn’t horrible, it was difficult to take him seriously when all we could think of was ‘why is Frasier draped in blue fur fighting bad guys’. But, Hoult was also more successful in capturing the character’s internal struggle between beast and scientist.

11 WORSE: KATE BOSWORTH AS LOIS LANE

Kate Bosworth Lois Lane

Just as Christopher Reeve’s Superman is widely considered the best portrayal of the character, Margot Kidder’s take on Lois Lane is usually found at the top of the list of best Lois Lane portrayals. On the other hand, Kate Bosworth, who replaced Kidder in Superman Returns, often finds herself at the bottom of the list.

In Superman Returns, Lois was stripped down of all the strength and independence that made her an admirable character to begin with. Bosworth delivered a lackluster performance, which when coupled with a spotty character arc makes for a less than stellar adaptation. Superman Returns had many problems, and Lois was certainly one of them.

10 BETTER: RYAN REYNOLDS AS THE JUGGERNAUT

Ryan Reynolds Juggernaut

In X-Men: The Last Stand, we were introduced to a bunch of new mutants, just so most of them could perish by the end of the film and never show up again. Juggernaut was one such character. Portrayed by Vinnie Jones dressed in a very unfortunate and hilarious costume, Juggernaut came off as a stereotypical soccer hooligan and didn’t make much of an impression.

Luckily, Deadpool 2 presented Juggernaut with a chance at redemption. In the revised timeline, in which Deadpool takes place (right?), the unstoppable mutant was portrayed by none other than Ryan Reynolds. And finally, the Juggernaut is cool.

9 WORSE: TOMMY LEE JONES AS TWO-FACE

Tommy Lee Jones Harvey Dent

Tim Burton’s removal from the Batman franchise led to a lot of drastic changes that eventually caused Batman to be absent from the big screen for eight years. Had Burton stayed on board, Michael Keaton would have donned on a gray and black suit, Marlon Waynes would have been Dick Grayson, and Billy Dee Williams would have returned as Harvey Dent’s alter-ego Two-Face.

Instead, the new director, Joel Schumacher, decided to recast the role of Harvey Dent and the Star Wars actor was replaced by Tommy Lee Jones. Jones is a terrific actor, but sadly he wasn't at his best in Batman Forever. And so, we got a lousy copy of the Joker.

8 BETTER: STEFAN KAPICIC AS COLOSSUS

Stefan Kapicic Colossus

Before Deadpool made Colossus an absolute fan-favorite, the character had minor appearances in the original X-Men trilogy as well as Days of Future Past. However, since Deadpool takes place in a revised timeline (right??), the role of Piotr Rasputin was recast and Serbian actor Stefan Kapicic replaced Daniel Cudmore.

Finally, Colossus became a major character with an actual personality beyond his mutant abilities. Stefan Kapicic created a lovable giant through his hilarious and emotional interactions with Deadpool and the rest of the group. We can’t wait to see what Colossus is up to in the upcoming Deadpool 3.

7 WORSE: JAMES MCAVOY AS PROFESSOR X

James McAvoy Professor X

James McAvoy is very talented actor and he’s done a great job portraying a younger version of Professor Charles Xavier. The only reason he’s on this list as an example of recasting for the worse is that he’s just not Sir Patrick Stewart. As unfair as it may sound, regardless of how good McAvoy is as young Xavier, Stewart will always be THE Professor X.

McAvoy was given a thankless task and still managed to do incredibly well. It’s just that the original cast of the X-Men movies, especially Sir Patrick Stewart, turned in such memorable performances that it’s hard to accept anyone else taking their places.

6 BETTER: LIEV SCHREIBER AS SABRETOOTH

Liev Schreiber Sabertooth

Usually, when we talk about X-Men Origins: Wolverine it’s to point out all the things the movie did wrong, which is almost everything. However, for all its faults, X-Men Origins: Wolverine did at least one thing right, and that is recasting the part of Sabretooth.

In the first X-Men film, Victor Creed was portrayed by Tyler Mane, who spent most of his screen time making scary noises while looking absolutely ridiculous. On the other hand, when Liev Schreiber took over the part, Sabretooth returned to his glory days. He had a proper backstory and actually looked and felt threatening.

5 WORSE: JENNIFER LAWRENCE AS MYSTIQUE

In the first three X-Men movies, the villainous Mystique was portrayed Rebecca Romjin who delivered an excellent performance. More importantly, Mystique’s role in the original X-Men trilogy was in line with her comic book roots. However, when the movies went back in time and Jennifer Lawrence took over as Mystique things slowly started to take on a new shape.

Suddenly, the Mystique we know gave way to a wholly different character. And it seemed as if with the increasing popularity of Jennifer Lawrence came a shift in Mystique's role in the movies, often at the expense of the story. For that, many fans started to dislike both the character and the actress.

4 BETTER: MAGGIE GYLLENHAAL AS RACHEL DAWES

Maggie Gyllenhaal Rachel Dawes

If there’s one thing we can hold against Christopher Nolan’s The Dark Knight trilogy it is the character of Rachel Dawes. Created originally for the movies, Rachel was Bruce’s childhood friend and love interest. Sadly, her character was reduced mostly to a damsel in distress. In Batman Begins, Rachel was portrayed by Katie Holmes, who decided not to return for the sequel in order to do Mad Money. Talk about poor decisions.

For Rachel this turned out for the better. With Maggie Gyllenhaal in the role we got a whole new, much better version of Rachel in The Dark Knight. Whereas Holmes played Rachel as an angsty teenager, Gyllenhaal gave much more depth to the character.

3 WORSE: BEN HARDY AS ANGEL

Poor Angel had the misfortune to end up in two of the worst movies in the X-Men franchise, save for X-Men Origins: Wolverine. Appearing for the first time in the polarizing X-Men: The Last Stand, Angel was played by Ben Foster, who did a fine job considering the movie he was in.

Years later, a younger version of the character appeared in the dreaded X-Men: Apocalypse portrayed by Ben Hardy. In Apocalypse, Angel was one of the horsemen, which is something he’s known for in the comics. However, unlike in the comics, Angel wasn’t a brainwashed member of the X-Men. He was just some mutant who spent his days fighting other mutants in a cage. He was an underdeveloped and forgettable character.

2 BETTER: JOHN SLATTERY AS HOWARD STARK

John Slattery Howard Stark

You probably remember two different versions of Howard Stark. The older Howard Stark from the movies, as portrayed by John Slattery, and the younger Howard Stark from the first Captain America film and Agent Carter, as portrayed by Dominic Cooper. But, before either of these two actors got the part, Howard Stark was portrayed by Gerard Sanders -- albeit, only on photographs.

Sanders appeared as Howard Stark only at the beginning of Iron Man and is, by now, mostly forgotten. In Iron Man 2, when the character got a personality and an actual role to play, John Slattery replaced Sanders.

1 NO ONE EVEN NOTICED: ROSS MARQUAND AS RED SKULL

Ross Marquand Red Skull

The surprise appearance of Red Skull in Avengers: Infinity War answered a burning question Captain America: The First Avenger left us with seven years ago. Red Skull looked a bit worse for wear, but that was to be expected all things considered.

However, what you may not have noticed at first, is that Hugo Waving, who played the character in Captain America: The First Avenger, did not return for Infinity War. The actor has expressed reluctance to reprise the role in the past, so Marvel went and cast Ross Marquand instead. Being skilled at impressions, Marquand did a spot-on take of Weaving.