Oh, I was looking at 3.0 when I posted that. Unfortunately 2.3 requires an additional modification.
In 2.3.6 you'll see something like $this->create_local_member( $username, $password, $email );
Change to $this->create_local_member( $username, $password, $email, $this->ldap_config['ldap_group_map'][ $this->fields[$this->ldap_config['ldap_group_id']][0] ] );
Then you have to modify loginauth/login_core.php to accept the group id function create_local_member( $username, $password, $email_address='', $group_id=0 )
And to pass it to the internal method $member = $this->_create_local_member( $username, $md_5_password, $email_address, $group_id );
And then the internal method needs to accept it function _create_local_member( $username, $md5_password, $email_address='', $joined='', $ip_address='', $group_id=0 )
And then of course store it in the db 'mgroup' => $group_id ? $group_id : $this->ipsclass->vars['member_group'],
Really we're starting to veer off course here. As you can see, it's much easier to do this in 3.x. ;)