Might mention that it doesn't do what I wanted/described out of the box. I had to change level2categories to display categories based on a specific user level instead of minimum. This way each user level can essentially be a user role/group that has limited categories. You're then limited to only 9 roles/groups (not counting admin), but that's plenty for my needs.
Out of the box it only lets you choose a minimum user level that the user must have in order to post into a category. This doesn't work for multiple roles/groups that you don't want to see certain categories, because as the user level gets higher, the more they can see. Restrict the levels to specific categories and then I have exactly what I want.
There is a conditional statement in l2c_disable_cats that just needs to be changed accordingly:
if ($user_level < "10" AND $user_level <> $fetch['level'])
This makes it so admins (or anyone with user level 10) can see all categories and all other user levels will only see the categories they are assigned to. I believe you also have to assign all categories to a level in order for it to work and make sure users are assigned to appropriate roles with the appropriate user level. This does not work with xmlrpc clients though (IE: Contribute or LiveWriter will show all cats still). It just changes the categories the user sees in the form in the admin panel of WordPress.