Re: User points
You could use that code I had earlier as a starting point. For your first bullet, you’d hook into whatever action is called once a profile has been updated, and then you’d have to ascertain how much of the profile was completed, probably by doing a number of SQL queries.
And for the second, just use the account activation hooks. Should be as easy as doing something like $meta[‘field_x’] where x = the profile field ID from the database.