Some of these pictures and descriptions may give away plot details that you might not want to know before watching the film.
This movie is based on the great idea of telling the story of Shakespeare's play "Hamlet" from the perspective of Hamlet's girlfriend, Ophelia. It was also a great idea to turn it into a snake movie.To understand what's going on in the movie and in this explanation of the snake scenes, it really helps to have a basic understanding of the complicated plot of Shakespeare's play so I'll try to summarize it from memory as briefly as I can.
Basically, Hamlet's father the King of Denmark dies of a snakebite while napping in his garden. His brother Claudius then marries his Queen, Gertrude. Hamlet returns to the castle from college to attend his father's funeral his mother's wedding. He has been romantically involved with a young woman, Ophelia, who is the daughter of Polonius, one of the king's advisors. Hamlet is mad at his mother for marrying so soon after his father died, but after the ghost of his father appears to tell Hamlet that he was murdered by Claudius, who poured poison in his ear, Hamlet swears to get revenge. He asks a traveling theater group to stage a play he writes about a King who is murdered when the future king pours poison in his ear. This enrages King Claudius. Ophelia is ordered by her father and the king to spy on Hamlet, who figures it out and breaks up with Ophelia, telling her to go to a nunnery. Then he mopes around and delays taking action, and in a fit of rage, he accidentally kills Polonius. Hamlet is sent away to England, supposedly to protect him from the murder charge, but Claudius actually plans to have Hamlet killed. Hamlet discovers the plan and returns to the castle. On his way he witnesses Ophelia's funeral. She went crazy from grief caused by her father's death and the breakup with Hamlet, then drowned herself. Ophelia's brother Laertes returned from France for his father's funeral, and to kill the murderer, and discovers that his sister is also dead. After Laertes learns that it was Hamlet who killed his father, Claudius convinces him to duel Hamlet and kill him with a poison sword. As insurance, Claudius also plans to give Hamlet a poisoned drink. But all goes wrong and all three men die from the poisoned sword, and Queen Gertrude dies from the poisoned drink.
Hamlet always did involve a snake: the official explanation of the death of Hamlet's father was that he died from a snakebite. In this telling, we get to see the source of the venom that Claudius used to kill him, which actually was snake venom, and meet the witch who makes the venom.
But first there is a foreshadowing mention of a snake about ten years earlier. We see Ophelia as a young motherless common girl sneak into a party, with the King and Queen Gertrude (Naomi Watts) and others having a conversation about Eve, the apple, and the snake. Someone blames the apple for tempting Eve, Gertrude blames the snake. Ophelia speaks up and agrees with Gertrude. This makes Gertrude take notice of her. She takes Ophelia into the court where she is educated with the noblemen's children then becomes a favored handmaiden to the queen and to the queen's son.
Years later, Ophelia (Daisy Ridley) is a handmaiden for Gertrude, who is addicted to a drug that she gets from her twin sister Mechtild (also Naomi Watts) who is a witch. Gertrude sends Ophelia to meet Mechtild at her cottage in the middle of the woods, to get the drug for her. Ophelia admires Mechtild's independence and skill and learns about the uses of snake venom during her visits - it is made from snakes from the New World. Too much of it can kill, but taking just three drops will make a person only appear dead. When they wake up, if they take an antidote, they will return to life. Mechtild used the same poison years ago to fake her death to prevent being killed for being a witch.
On one visit to Mechtild, Ophelia sees a mysterious hooded figure leaving the cottage, and hides from him behind a rock outcrop. A gray snake crawls over her feet as the man passes. She's shocked and afraid of the man and the snake, but she manages to stay quiet.
Later Ophelia discovers that the man she saw leaving Mechtild was King Claudius, who must have been getting poison from Mechtild because she found a vial in his cloak. That leads her to assume that he used a similar snake venom poison to kill Hamlet's father. She tells this to Hamlet. (In this version, the ghost does not tell Hamlet who killed him, Ophelia does.) Hamlet then plans his revenge based on Ophelia's information.
As he does in the original play, Hamlet asks a traveling theater group to perform a play, but instead of the play we see in Hamlet, this one is only silhouettes of the actors behind a screen who portray a tree with branches with one branch becoming a snake that hisses while a musician makes rattling sounds the pours poison into the King's ear. Claudius is so enraged by the play that he orders the whole company to be executed.
After Hamlet kills her father Polonius, she fakes madness then takes three drops of poison and fakes her own drowning. Before faking her death, she arranged to have her coffin dug up shortly after the funeral. She returns to life, takes the antidote, then cuts her hair short and disguises herself as a boy to go back inside the castle to convince Hamlet to run away with her. But when she sees that Hamlet is obsessed with the duel and not her, she runs away and escapes to that nunnery Hamlet told her to go to, where she gives birth to a daughter whose father was Hamlet.
The snake we see looks real, but I think it was CGI.