As i understand for the output layer the error rate is used with the mean squared error function to update the weights. For the hidden layers as well? Does that make sense?
A Multilayer Perceptron changes your weights by an algorithm called "backpropagation". This algorithm uses gradient descent combined with a learning rate to change every weight in your MLP.
Basically the backpropagation functions by chaining together all functions that are called when calculating the output of one particular node (so chaining together all possible ways). Now using the chain rule a gradient is calculated which directs into the direction of minimal error and changes all weights accordingly.