Although there’s strong competition from Taxi Driver and Raging Bull, Goodfellas is arguably Martin Scorsese’s masterpiece. The director used every cinematic trick in the book to tell the story of Henry Hill, a budding mobster-turned-federal witness. Scorsese’s mob movies all serve the central thesis that a life of crime will only end tragically, and the fleeting glitz and glamor isn’t worth the fallout. Hill’s story provided Scorsese with the perfect vehicle to deliver this message.

RELATED: Goodfellas: 5 Ways It's Scorsese's Best Movie (& 5 Alternatives)

While Ray Liotta and Lorraine Bracco ended up leading a cast of brilliant actors perfectly matched to their roles, Scorsese considered a handful of actors before landing on his eventual choices.

Tom Cruise As Henry Hill

Tom Cruise as Henry Hill

For the role of Henry Hill, Warner Bros. reportedly wanted Scorsese to cast Tom Cruise. Scorsese and Cruise had worked together a few years earlier on The Color of Money, a belated sequel to The Hustler — the only sequel Scorsese has ever directed — in which Paul Newman’s now-aging pool hustler character takes a young protégé, played by Cruise, under his wing.

While Cruise was one of the biggest movie stars in the world at the time and a great actor in general, he’s not particularly well-suited to the role of an Italian-American mobster. Cruise eventually played Barry Seal in American Made, a fast-paced nonlinear biopic heavily influenced by Goodfellas’ distinctive style.

Al Pacino As Jimmy Conway

Al Pacino as Jimmy Conway

Although Martin Scorsese and Al Pacino didn’t end up working together until they made The Irishman, the two had been looking for a project to collaborate on for decades. The role of Jimmy Conway in Goodfellas was initially offered to Pacino, but he turned it down.

Ironically, Pacino turned down the role of Jimmy because he didn’t want to be typecast as a gangster, but he ended up playing an even more cartoonishly stereotyped gangster named Big Boy Caprice in Dick Tracy the same year Goodfellas hit theaters.

Ellen Barkin As Karen Hill

Ellen Barkin as Karen Hill

When Goodfellas was in pre-production, Ellen Barkin — known for her acclaimed performances in everything from The Big Easy to Drop Dead Gorgeous — unsuccessfully lobbied for the role of Karen Hill.

RELATED: Goodfellas: 5 Movies That Influenced It (& 5 Movies It Influenced)

Barkin wasn’t scorned when she lost the part to Lorraine Bracco, as Bracco was a friend so she was happy for her. Bracco’s turn in Goodfellas landed her an offer for The Sopranos. David Chase initially wanted her to play Carmela, but since she’d already played the part of a mob wife, she asked to play Dr. Melfi instead, feeling that playing Tony’s therapist would be more of a challenge.

Sean Penn As Henry Hill

Sean Penn as Henry Hill

Sean Penn was one of the actors considered for the role of Henry Hill early in Goodfellas’ development. While Penn didn’t clinch the role, he later appeared in such masterfully crafted crime films as Dead Man Walking and Mystic River.

Penn has also since appeared in a couple of straightforward gangster films, including Carlito’s Way, in which he co-starred with Al Pacino, and Gangster Squad, in which he played notorious real-life criminal Mickey Cohen.

John Malkovich As Jimmy Conway

John Malkovich as Jimmy Conway

Robert De Niro’s role of Jimmy Conway was initially offered to John Malkovich, but he turned it down. After the role had been turned down by both Al Pacino and John Malkovich, Martin Scorsese decided to offer it to his go-to leading man (a torch that has since been passed on to Leonardo DiCaprio).

Three years later, Malkovich took the role of Mitch Leary in the now-classic Clint Eastwood thriller In the Line of Fire, which De Niro had turned down.

Nicolas Cage As Henry Hill

Nicolas Cage as Henry Hill

Before Ray Liotta was cast as Henry Hill, Nicolas Cage was reportedly considered for the role. While movies like National Treasure and his Wicker Man remake have undoubtedly tarnished Cage’s reputation, he does have a proven track record as an actor. With his slapstick-oriented comedic performance in Raising Arizona and his Oscar-winning dramatic turn as a suicidal alcoholic in Leaving Las Vegas, Cage showed off an impressive amount of range.

RELATED: Goodfellas: 10 Most Iconic Moments, Ranked

Although he didn’t play Henry in Goodfellas, Cage later played the lead role in Lord of War, a movie that essentially took a Goodfellas-style cinematic approach to portraying the international arms trade.

Madonna As Karen Hill

Madonna as Karen Hill

In addition to wanting Tom Cruise to play Henry, Warner Bros. reportedly wanted Madonna to play Karen. While Madonna is an incredible singer and musician, her acting abilities have left a lot to be desired. Unlike Dolly Parton and Lady Gaga, Madonna has been unable to prove her mettle as an actor, despite many chances.

The singer’s Swept Away remake was notoriously panned, and her performance is one of the only weak spots in A League of Their Own.

Alec Baldwin As Henry Hill

Alec Baldwin as Henry Hill

In an interview on The Howard Stern Show, Alec Baldwin confirmed that he did an audition for the role of Henry Hill in Goodfellas, but it was ultimately played by Ray Liotta.

Scorsese didn’t forget about Baldwin completely. He ended up bringing him aboard a couple of his 2000s ensemble pieces, like The Aviator and The Departed, to play supporting roles.

NEXT: 9 Actors Considered For Roles In Jurassic Park