The classes I took were free! If you cannot afford a class, let them know! They will work with you, waive the fee, or have you pay something really small (like $5 or $10). Mine were free because of the hospital I went to. Some are free, others charge ridiculous amounts of money.
I personally did not take a labor class and my labors were beautiful and perfect. I don't feel I missed out. The nurses at the hospital were helpful. With my 2nd birth my MIL was present and she was a godsend. She was a great labor coach for my husband (she coached him to coach me, LOL!).
I also took a breastfeeding class and it was really boring but SO INFORMATIVE! I feel I learned a lot.
And finally I took a Baby Care Basic class which taught about how much newborns eat, their poo patterns & changing diapers, safety, carseats, talked about baby personalities, SIDS, etc., etc. It was an amazing class and I'm glad I went to that one!
As for WHEN to register, you should call and ask. Each class has different requirements.
I will be 31 weeks Thursday and I start my Lamoze classes tomorrow. I should have started last week Wed. but was late to enroll.. so you should probably start your lamoze between 28 and 30 weeks I would imagine.. Depending on when your hospital has sessions. I will also be taking the breastfeeding class and the child care class that my hospital offers but I get those free with my $50.00 enrollment fee for lamoze.. They are both 1 time classes.. I think they are 2 hours long.