I've also come across this bug. This seems to be a problem in the mknod wrapper function. When using tar with --xattrs it creates files using mknod, but without specifying a file type. An empty file type should be equivalent to S_IFREG. Fakeroot doesn't handle this and just stores the exact mode requested, resulting in the "invalid mode" error.
I've attached a patch which seems to solve the problem. This could also be handled in process_mknod in faked, but I choose libfakeroot side for the patch.
mknod_empty_ftype.patch
Description: mknod_empty_ftype.patch