Ok, nobody is customizing registraiton process?
It turns out #1 is pretty easy, it's in identity-ui-configuration.xml. I never figured out why activationLink won't add domain, but an easy workaround is to hardcode the domain in email template.
No idea on #3 either, I have altered the default portal's theme and layout, all the other pages of the identity portlet are using the new look and feel, but the page just won't pick it up. In the end I had to resolve to a hack by putting a js redirect in the index.xhtml so that it will instantly redirect away from the validation page to a page of my choice.