The world of Pokémon is truly a wonder, the planet is filled with these magnificent creatures. Some live in the sky, some live beneath the ocean, some travel the world, and some exist only in dreams. Many of these Pokémon live peacefully among humans, however some humans seek to exploit Pokémon for their own means. One of the Pokémon so desired is the Legendary Groudon, coveted by thevillainous Team Magma. This story is about one man who went looking for Groudon, yet found something far more powerful that would make his wish come true...
Once every thousand years, the Millennium Comet is visible from earth for only seven nights... and now the time for it to appear among the stars has arrived again. Ash and his friends arrive at the location where a festival is due to be held to celebrate the comet's arrival... but despite Brock's guidebook guiding them to the correct spot, there's no sign of a park, or even anything but open plains. As it's late at night, everyone decides to get some sleep and resume the search the next morning.
During the night Pikachu wakes up when he hears trucks from a distance. It then wakes everyone up, as the workers are starting to erect tents for the festival. A yellow pickup then parks on the side and a purple-haired man then come out with a briefcase. He then takes a magician stick and opens the briefcase. Pink balloons then magically come out of his briefcase, as he hit them with his stick. A woman then comes out with two fans and hit the balloons with them. Once all balloons are forming a circle, they pop up, and a huge tent is slowly created by the magician. Everyone stares in wonder at the magician, while Brock (of course) has his eyes on the woman. Soon the festival begins, and it looks like a lot of fun.

Day One of the Millennium Comet

The day is spent by the gang enjoying the various rides and attractions of the Millennium Festival. Team Rocket are naturally nearby, but don't have time to enjoy themselves as they've been put to work handing out flyers to everyone to announce 'The Great Butler's Magic Show' while disguised as clowns. Ash pick up one of the flyers, and Max notices that the flyer features the magician they saw last night, creating the tent. The gang decide to check the show out, thinking that if he can do a magic show as well as he can create a tent then they're in for a treat.
Soon, the gang are watching the show and it's turning out to be even better than expected. Butler, the purple-haired magician, putting his white hat on an empty table. After creating a flock of Swablu out of thin air he then slaps the hat with his stick, and when he takes off the hat, a Kirlia suddenly appears! Butler then calls on his Mightyena for another trick. Butler seals back Kirlia, puts a red cloth over it, then burns it off. Out of the smoke comes Diane, Butler's assistant, carrying a crystal. Brock applauds, declaring that Butler is amazing. Glowing rays come out of the crystal, and Max suddenly hears a voice. The voice tells him that 'it' is sealed inside the crystal. Max rushes to the scene, followed by Ash. Max tells Butler that he heard a voice from the crystal. Naturally Butler is surprised... but not too surprised. Butler then claims their arrival was in an impeccable timing for his next trick, the 'Burning Box'. Jessie and James (still disguised as clowns) then carry the box and put Ash and Max in it. Diane encourages them, and Butler tells the audience that Ash, Max and Pikachu are fellow magicians, and will escape the box before his Dusclops destroys it with Hyper Beam. Butler summons Dusclops, which slowly approaches the box. The entire audience are on tenterhooks, especially May and Brock. Dusclops then fires on the box but before it does so, Ash and Max are transported away by a machine under the stadium. Butler says not only did they vanish from the box, but also teleported to the entrance of the dome! The flashlights then show Ash and Max, and while Ash laps up the applause Max isn't sure what to do. May wonders if Ash and Max will tell her how they did the trick, while all Brock is hoping for is that he gets introduced to Diane.
Ash is still waving to the crowd... when suddenly Team Rocket (suspended from a balloon) grab Pikachu off his back and put him in an electricity-proof container and take off their disguises. Ash demands Pikachu back, but Team Rocket prepare a trick of their own... they're going to make Pikachu disappear along with Kirlia and Mightyena which they've also nabbed. Meowth has been waiting at the side and opens the roof and joins his teammates as they make their getaway. Ash goes to send out one of his Pokémon however Butler stops him as he has one more trick up his sleeve. He orders Dusclops to use Will-O-Wisp which sends Pikachu flying back to Ash who decides to do an encore and has Pikachu fire a trusty Thunderbolt which certainly charges up Team Rocket and releases Butler's Pokémon. Butler has Dusclops finish things off with Night Shade which sends Team Rocket blasting off again. The audience applauds loudly, and May notes that the audience think Team Rocket were part of the act... hopefully they won't come back for a final bow. Max is relieved everything worked out, but is still curious about Butler's crystal.
After the show, Max asks Butler and Diane about the crystal, and they respond by saying the crystal contains a Pokémon named Jirachi. Butler tells everyone that Jirachi only awakens once every 1000 years, and is sleeping inside the crystal, which acts like a cocoon. To wake up Jirachi, the crystal needs two things; the Millennium Comet to be visible in the night sky and a best friend chosen by destiny. Max happens to be the chosen one, so Diane gives him the crystal and as the crystal is due to appear in the sky that night it seems Max's new friend will awaken soon.
Ash, May and Brock talks how about the world can change in a thousand years. The clouds then go off, revealing the comet glowing magnificently in the night sky. Soon Max is asleep with the crystal in his arms. May then starts singing her mother's lullaby. As Max sleeps, the crystal glows, goes off Max's hands then float in the air. Then, a mysterious light surrounds it, and Jirachi appears! Max introduces everyone to Jirachi. Diane then comes and Ash tells him that the prophecy was true. Diane tells them to pass the night in her bus. Inside, Max asks about wishes, then wants snacks. At first, everyone said Jirachi can't grant wishes until Ash saw a bag of potato chips on Max's legs. Then, more and more snacks appears, filling the whole bus! The doors then open, with Diane with Butler coming and asking what happened. Max tells them he wished for candy, and his wish came true! Diane picks up some cheese puffs, look at them then says those are the same from the snack-bar which suddenly lost all of its merchandise. Jirachi didn't create the treats, it teleported them away. May then gets irate and blames Max for this. Ashamed, he asks what should he and Jirachi should do. Brock suggests teleporting the food back to the store. If Jirachi was able to get the candies from the store, it could also teleport them back there. May yells at Jirachi to 'get rid of the problem'. Jirachi agrees, but from its point of view, 'the problem' to get rid of was May, not the snacks! It teleports May in the load of snacks, and falls asleep. Ash, Brock and May are then forced to take the candies back to the store by themselves.At twilight, May buys a Wish Maker, a sacred item that can grant one wish when its panels are closed while facing the comet. The stallholder tells May that she has to close a flap on the Wish Maker every night the comet is in the sky to make her wish come true. Soon fireworks are going off to celebrate the arrival of the comet, with many of the fireworks taking the forms of Pokémon. Afterwards, the fair closes down for the night.
Close by, another creature has sensed Jirachi's reawakening. It is Absol, the disaster Pokémon. It takes off towards the fair, heading for Jirachi... and Max.

Day Two of the Millennium Comet

The sun rises on a brand new day, and Max eagerly waits for Jirachi to wake up which it soon does and in no time is happily flying around Butler's van. With Team Rocket having left Butler's employment, Ash and Brock are now his new clowns. Max goes to the amusement park with Jirachi and have fun the whole day. At twilight, Absol can be seen rushing to the park. May wheels over a lighting rig to another part of the circus, but it hits a leg of wood and starts to fall. She asks for Max's help, however Jirachi is far more interested in playing than helping and steals Max's glasses. But Max hears an eerie sound coming from the mirror. The mirror breaks, revealing Absol. Butler recognizes Absol, a Pokémon which is known to appear just before a disaster. Absol runs after Max and Jirachi. May, seeing her brother in danger, summons Torchic and orders an Ember but the attack is far too weak and Absol continues to approach Max dangerously. Ash sends in Pikachu telling him to use Thunderbolt which succeeds in hurting Absol and sending it flying back but also makes it even angrier. Jirachi tells Max that Absol is here for it and then teleports Pikachu and Torchic away. The two reappear far above the tent, and fall although the tent cushions their fall. Now there is nothing protecting Max and Jirachi, however Absol then changes its target and rushes towards the gang when Butler opens a booby-trap and Absol falls into it. The trap then releases a cage with Absol in it. Kirlia then uses Hypnosis to send it to sleep.
During night, May sits on a rock while everybody else is sleeping and folds the second panel of her Wish Maker. She notices Butler going back to the tent with something, which is revealed to be Jirachi. Butler puts it on a machine that would create a Groudon, to get revenge on Team Magma, who fired him and made a mockery of his original machine long ago, when he failed to create a Groudon before the Team Magma Council. He then asks Jirachi to open its true 'Millennium Eye', but Jirachi refuses. Dusclops then starts torturing Jirachi until its Millennium Eye is opened. Absol had actually come to protect Jirachi and take him back to Forina, where Butler had found Jirachi's rock, but the cage prevents him from doing anything. Meanwhile, the gang wakes up to find that Jirachi is missing, and Max is especially distressed. Under the pain of Dusclops' Psychic, Jirachi's Millenium Eye is forced to open and the gang then sees a beam coming out of the tent, hitting the comet and going back in to hit Jirachi. Butler's machine explodes, and Max rushes to a severely injured Jirachi. He tries to flee but Dusclops stops him. Absol then breaks free of the cage and defeats Dusclops. Meanwhile, Diane gets everyone on Butlet's circus bus and starts to drive away. Butler sends his Mightyena after the bus, and Mightyena manages to stick a tracker under the bus. Diane explains to everyone Butler's backstory, his reasons for revenge, and the use he wanted to put Jirachi to. They decide to go to Forina, with Butler tracking them. He ejects a blimp-like device from his van, apparently to follow them.

Day Three of the Millennium Comet

Diane is driving everyone out across some very bumpy terrain, which manages to destroy the tracker. Inside, when Ash falls down, with May, Max and Jirachi laughs. When night comes, Brock starts cooking and May closes the Wish Maker's third panel and then joins Diane in the bus. She tells her that she and Butler were childhood friends, and the last time she saw a delighted Butler was long ago. However Butler joined Team Magma, and proposed that he could revive a Groudon from a fossil he discovered. However, when he attempted to demonstrate this, he only managed to destroy the equipment. Butler realized he would need a lot more power before the restoration would work, but this wasn't good enough for the Team Magma leaders and Butler was laughed out of the organization. Butler now plans to use Jirachi to channel the power of the Millennium Comet using the true eye.

Day Four of the Millennium Comet

The majority of the day is spent driving. The bus gets stuck in the mud, so everyone helps to get it out. Afterwards, everyone is covered in mud, and all laugh. At night, Ash and Max have fun skipping stones on the lake, and Max wins. May folds the fourth panel of her Wish Maker.

Day Five of the Millennium Comet

Once again, the day is spent mostly driving, and Jirachi notices Max is sad about something. That night, May folds the fifth panel of her Wish Maker. However, Max snaps at her for doing it, as it is a reminder that he has only two days left with Jirachi. He then runs off in distress, and Ash follows to talk to him. Ash assures Max that really good friends never really leave, and tells him that he recently separated from one of his best friends and although he misses her a lot he knows that she's still with him in spirit. Max cheers up, knowing that he and Jirachi will still be friends even if separated.

Day Six of the Millennium Comet

The gang arrives at Forina, Jirachi's homeland. Many other Pokémon live there, such as Nuzleaf, Breloom, Tropius, Linoone, Flygon, and Altaria. May folds the sixth panel of her Wish Maker and the gang prepares to sleep, everyone except Max, who knows tomorrow he and Jirachi will part. He plans to remain awake and play with Jirachi when everyone else has fallen asleep, however he drops off to sleep when May sings the lullaby.

Day Seven of the Millennium Comet

The End of the Millennium CometAbsol leads the gang to a cave, the same cave where Jirachi absorbs the comet's power and falls asleep for another 1000 years. As Jirachi is going to open his Millennium Eye, spikes come out of the walls and purple energy beams capture Jirachi! Butler (who has been waiting for the gang) is finally going to bring Groudon back to life. Then he sets all the machines A-OK, while Absol and Flygon break the spikes. Flygon takes Ash and Max for a ride, and they manage to get Jirachi back, while Butler sends his Salamence to fight against them. Groudon is slowly rising as Butler watches. Groudon is then completely formed as the gang stand behind it, however it becomes clear that rather than resurrecting a real Groudon all Butler has done is create a monster with Groudon's shape. The fake Groudon then starts sucking energy from the earth as Absol attacks it. Groudon's left claws then become slimy blue-green tentacles and engulf Absol away! Groudon rear spikes becomes tentacles, too, chasing every Pokémon. Team Rocket then arrives, but get engulfed as Groudon is trying to get the Altaria. A scene is then shown in Groudon's stomach; Absol, many Pokémon and Team Rocket! Other Pokémon are getting 'eaten' while Butler claims this isn't the Groudon he wanted, as if Groudon was an evil beast! Having the taste not only for Pokémon energy, but also human energy, Groudon was going to eat Butler, but Diane blocks the tentacle and get sucked in instead! Butler realizes how to stop Groudon; put Jirachi back on the machine and reverse the polarity. With the help of Ash, he gets to the machine, while May and Brock get eaten! Butler makes an ill movement and drops the shard with Groudon's data but Ash manages to catch it and bringing it back to Butler. As soon as the machine is started, Groudon approaches and launches its tentacles on Jirachi, but Butler shields Jirachi and gets sucked instead. Groudon, angry, pours its gooey substance over the machine, but Jirachi starts glowing. Groudon is slowly dragged by a white meteor made by Jirachi to the Millennium Comet, and then explodes, releasing all Pokémon and human alike it ate. Jirachi then descends the sky and asks Max one final wish; the lullaby. Everyone starts singing while Jirachi returns inside the crystal and sinks into the earth. Max cries for a short time, and wishes Jirachi a good night and sweet dreams.
The next morning, Butler and Diane announce that they have decided to stay in the nature of Forina, having realized that the only important thing is that they are together. They offer the group a ride back to town. Then Brock reminds May of her Wish Maker. She takes it out only to see that, to her disappointment, she didn't fold the 'Day 7 of the Wishing Star' flap. However, she says it doesn't matter after all, because we all have to make our own dreams come true anyway. Ash agrees, saying that by wishing for a dream to come true, one would lose the fun that comes with pursuing the dream. As the group leaves, Jirachi communicates to Max using telepathy, saying that they will always stay best friends forever.