The first thing you should do is plan your new floor. What size tile, what will the threshold be, what goes underneath, etc? Sketch it out - sketch it again.
I would recommend removing all the fixtures before beginning demo but I had to complete this project after work so it took several weeks of on and off attention. I left the toilet and vanity hooked up to the water lines because I didn't have faith in the shutoff valves in the bathroom to hold for several weeks so they may appear in some photos. If you can, remove before demo.
To begin demo remove the trim from the walls and cut a small square of the floor up to see what is underneath and to provide a spot to begin the floor demo. Using a wonderbar/crowbar/hammer pull up hardwood.
NOTE: When you get close to the doorway - stop demo and prep the transition zone where the tile will meet the hardwood in the hallway.
Step 1: Prep Threshold
Because you sketched your new floor several times you already know what the plan for the threshold is, right? Snap your chalk lines in the room from where you will start tiling. Measure from the chalk line parallel to the threshold and mark both sides of the doorway.
Snap a chalk line between the left and right door jam. Repeat if necessary to get it just right (my wife and I did it 3 times to be sure). There is no going back if you cut off too much.
Screw a straight edge (scrap lumber with good lines) into the floor on the BATHROOM side of the chalk line.I used the straight edge as a guide for my saw using the rounded blade to cut 75% through hardwood. I then used a straight blade to cut through the hardwood without damaging the subfloor (mark blade with tape the thickness of hardwood - e.g., 3/4 inch). Clear out hardwood from underneath door frame with drill/dremel/rotozip.
Step 2: Repair Subfloor and Replace Toilet Flange
Once I removed the toilet I was able to see part of the original problem. The toilet flange was installed incorrectly as you can see the bolts were placed in two U shaped recesses in the flange and not in the proper channels for the bolts. The flange bolt "channels" should be perpendicular to the back wall so that the bolts could float while squaring the toilet in the room. Incorrect bolt placement split the flange and likely contributed to a cracked toilet.
To repair, cut a whole in the subfloor near the flange and big enough for a reciprocating saw to fit under the floor. Cut the flange pipe as near to the bottom of the subfloor as possible, this will allow the most amount of pipe to work with when installing the new flange. Once flange is cut remove the subfloor using a pry bar and hammer.
Measure new subfloor dimensions and cut replacement piece. Also measure to the center of the drain pipe from at least two sides. Measure diameter of pipe to trace on new subfloor. Using jig saw, cut our hole for drain pipe.
To replace toilet flange you will need a length of pipe, coupler, pvc primer, pvc glue, toilet flange. Use the couple to join the old pipe to the new pipe that the flange will connect to. Measure and cut old/new/coupler pipe so that the drain is right below the subfloor. DO NOT glue the toilet flange on until after subfloor is installed. Put liquid nail on joist and nail down new subfloor. Then prime/glue drain pipe and slide toilet flange on. When joining pipes hold together for ~30 seconds to ensure bonding. Screw in the toilet flange and then put an old t-shirt wrapped in a bag in the drain - unless you like the funk.
Step 3: Install Base for Tile
I chose 1/2 inch cement board as the base for my tile. This should match the height of the finished tile with the old hardwood. 1/4 cement board, hardy board, or schluter-ditra are all options. Do some research and choose wisely.
Cement board needs to be bonded to the subfloor with thinset (aka mortar) and fastened with cement board screws. Measure the dimensions of your room and subtract 1/4 inch from each wall and leave 1/4 inch space between cement board panels. The cement board should not touch the wall, framing, or anything or else when the wood expands contracts it can buckle your new tile. To cut cement board use a straight edge to score a line and then use a pivot point (old 2x 4, edge of table, etc.) to break the cement board along the score line. For funky edges (see picture) go slow and break in pieces so that the cement doesn't crack. For the circle of the toilet flange measure from two walls, score on both sides, and hammer out the circle. Use a file to enlarge hole and shorten edges for wall clearance if needed. Dry fit cement board in room prior to mixing thinset. Lay cement board so joints run opposite of subfloor panel joints.
Once your happy with the cement board mix the thinset. Only make enough to last you ~20 minutes. Add water first, then dry thinset. Water goes along way so use it sparingly. The consistency of thinset should stick to your trowel while upside down but still move like a fluid. Apply enough thinset to the floor and lay panels. Ensure a 1/4 gap between cement board panels and screw down. Fill gap with thinset, apply tape, thinset over top of tape and smooth.
Now you're ready to tile!
Step 4: Prep Tile
Remember all those sketches of the room I mentioned earlier? Here is why they're important. The first two images are tile layout options. In Option 2 four tiles fit almost perfectly from top to bottom on half the room. In option 1 has three full tiles with ~1/2 width tiles on the four walls. Snap chalk lines measured from both sides of two walls in which ever lay out you like best. Dry fit the tiles - this is time consuming but it is totally worth it. I first dry fit option 2 and didn't like how if I messed up somehow and the tiles weren't perfect then I wouldn't have the option to trim tile and make them fit. I dry fit option 1 next and liked how the ~1/2 width tiles on the perimeter would give me opportunity to cut tile to fit if I was off my lines a little. This did end up saving me but cutting that many tile with a small wet saw is awful.
Dry fit the tile and take measurements. Cut the tile to size using a wet saw. Go slow and take your time.
Also, chalk the room before cutting the threshold as the chalk line are the official "square" of the room. I cut my threshold off the doorway which wasn't square to my chalk lines. I had to re-cut the threshold to make the end tiles that same width.
Step 5: Tile!
Mix up your thinset/mortar - remember small batches (~20 min worth). I got greedy and made way too much but fortunately didn't get caught and finished in time.
Determine where to start laying tile - start at the X in your chalk line and work in a direction that leaves you by the door when you finish - i.e. don't tile into a corner!
Lay thinset on the floor with trowel, then BACK BUTTER your tile. Google it, briefly spread thinset on back of tile and trowel off excess. This greatly increases the bond between the tile and thinset. I forgot to do it on about 1/4 of the tile because I was rushing due to large amount of thinset I mixed.
I used a tile leveler (Tuscan) which I highly recommend. These prevent lippage of the tile with its neighbor. Make sure you slide the clip under each tile corner before laying next tile. I forgot to do that about ten freaking times and had to pick up the tile and reinsert.
After setting the tile press firmly and move side to side to remove air pockets. I forgot to do that a lot as well. Hopefully the mortar is solid underneath. I found it easiest to set the tile nearest it's neighbor and press down while pulling away to set tile and not squeeze mortar up through the space between tile.
The seamclips squeezed a good amount of mortar up in a couple places. I had to grind it out with dremel before grouting. Seam clips still worth the $40.
Have an angle grinder at hand to trim the perimeter tile if necessary. I had to last minute trim two. Keep a bucket of water and sponge/towel handy - real handy -to clean up any mortar that squeezes up or drops on tile.
Step 6: Grout
Starting the corner furthest from doorway work the grout into the joints at a 45 degree angle to the joint pressing down firmly. Once filled place you float at a 45 Degree angle to the floor and slide across joints at an angle to remove excess grout. Only fill grout lines within your as reach and stop. Now it's time to sponge and sponge and sponge and sponge. This is very important. Don't grout the entire floor and then go back to sponge because the excess on the face of the tile will have dried and haze will be very hard to remove.
Have a five gallon bucket full of clean water on hand while grouting. Once you've completed grouting a section wet the grout sponge and ring it out very hard. You want the sponge to be wet but not holding any water. To much water will dilute the grout color and weaken the strength. Sponge at 45 degree angles to the grout lines. Rinse the sponge often. Seriously, almost after every other swipe. Keep sponging until all excess grout removed. When you finished sponging a section mix fresh grout and repeat until you are finished.
Best advice for grouting is go slow sponge often and mix small fresh batches of grout.
Step 7: Raise Toilet Flange
Now that you are finished with your new floor install the toilet and sink an grab a beer or three.