[eluser]Aken[/eluser]
Aside from the is_unique rule being wrong in the name field set_rules(), your controller looks fine from first glance. I just tested a fresh install of 2.1.2 and had no problems using min and max length.
I would add the type attribute to your input tag, even if it isn't 100% necessary.
Maybe, on a really off chance, your registration and portal views happen to have the same content? Like you copied one into the other and forgot to change it. Sometimes we make dumb mistakes like that.
Other than that, it might be specific to your application's environment for whatever reason. Best I can say is start a page from scratch and see if just the bare bare minimum doesn't work. If not, try and debug into the code and figure out why.