и почему 100500 условий без elseif?)
а mb_strlen спецом без указания кодировки юзаешь?
с каких пор mysql_num_rows стало предпочтительнее count?
почему бы в запросах не указывать дефолтные значения на уровне sql и не усложнять запрос в 5 раз?
зачем выводить форму и считать заново все данные если пользователь ввел данные с ошибками?
собственно я о чем, слава богу что регистрация не проходит и такой ужас не попадает в релиз