get_node("Sprites/Weapon").look_at(get_global_mouse_position())
Is what you're looking for. If this doesn't work exactly right, rotate the sprite accordingly either in the editor window or in code to offset, like you've been doing.
For things like weapons consider making them an Area2D or a KinematicBody2D with a child node being the sprite, so you can get access to collision methods for free :)