No need to add `max_dims` (if you change the slicing code as mentioned). You can still raise an error if you like, but a lot of numpy doesn't bother, since `slicing[j] = ...` will fail already. (as is, too low negative axes might do weird stuff, not sure)